Конвертировать%S в ноль в plsql

Я наблюдаю проблему после переноса формы оракула 6i в 11g. В форме я создаю пакетную команду Windows. часть команды, как показано ниже:

declare
    lv_content5c varchar2(300);
begin
    lv_content5c:=  '@Set sizeout2=%sizeout2:bytes=%';
    CLIENT_TEXT_IO.PUTF(out_file,lv_content5c);
    CLIENT_TEXT_IO.PUTF(out_file, CHR(10));     
    CLIENT_TEXT_IO.FCLOSE(out_file);
    client_host('cmd /c  start '|| lv_filename);
end;

кажется, что когда я сохраняю этот текст "@Set sizeout2=%sizeout2:bytes=%" "в файле oracleForm или Plsql преобразует его, как показано ниже:

@Set sizeout2 = nullizeout2: bytes =%

как можно видеть,% s преобразован в ноль в выходном файле. Не могли бы вы сообщить мне, в чем проблема, и сталкивались ли вы когда-нибудь с подобной проблемой?

Пожалуйста, обратите внимание, что мой бэкэнд - 12c, а внешний - 11gR2.

1 ответ

Решение

PUTF принимает первый строковый аргумент как спецификацию формата, а последующими строками является содержимое. Также вам нужен правильный терминатор строки. Так же и PUT_LINE(out_file,lv_content5c); и удалите следующую строку CHR(10)).

Другие вопросы по тегам