Конвертировать%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)
).