我将oracle表单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;
似乎当我在文件oracleForm中存储此文本“'@ size size2 =%sizeout2:bytes =%'”或Plsql将其转换为如下所示:
@Set sizeout2 = nullizeout2:bytes =%
因为可以观察%s在输出文件中转换为null。你介意告诉我这是什么问题,你有没有遇到类似的问题?
请注意我的后端是12c,前端是11gR2。
答案 0 :(得分:1)
PUTF将第一个字符串参数作为格式规范,后续字符串作为内容。此外,您需要一个正确的行终止符。 PUT_LINE也是如此(out_file,lv_content5c);并删除以下行(CHR(10)
)。