在plsql中将%S转换为null

时间:2018-01-11 04:11:55

标签: plsql oracle11g oracle12c oracleforms

我将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。

1 个答案:

答案 0 :(得分:1)

PUTF将第一个字符串参数作为格式规范,后续字符串作为内容。此外,您需要一个正确的行终止符。 PUT_LINE也是如此(out_file,lv_content5c);并删除以下行(CHR(10))。