我的一个程序有问题,它与源文件 CCSID 相关。\n我需要生成一个 JSON 字段。\n在原始程序中,它是从公共表(具有不同列)插入到一个表,定义为 CLOB 以包含使用源表列生成的 JSON。
\n这是该程序的一个示例,它显示了问题,并且存在相同的问题:
\n**free\n\nctl-opt dftactgrp(*no) option(*srcstmt:*NODEBUGIO);\n\ndcl-s jsonv varchar(256) ccsid(1145);\ndcl-s text varchar(34) ccsid(1145);\n\nTEXT='TEST, AND TEXT';\nexec sql set :jsonv=json_object('test_text' value :text);\n\nreturn; \xe2\x80\x8b\nRun Code Online (Sandbox Code Playgroud)\n编译为:
\nCRTSQLRPGI OBJ(TESTJSON) SRCFILE(LET) SRCMBR(TESTJSON) OPTION(*EVENTF) REPLACE(*YES) DBGVIEW(*SOURCE) LANGID(ESP) CVTCCSID(*JOB)\nRun Code Online (Sandbox Code Playgroud)\n问题是,当我编译来自 CCSID 284 源文件的代码时,它工作正常。
\n但是当我从 CCSID 65535 的不同源文件编译它时,程序失败。\xc2\xa0
\n这些是错误:
\nDerived operands not valid for operator JSON_OBJECT. Reason code 12. \nCharacter conversion between CCSID 65535 and CCSID 1208 not valid. \n 12 -- The CCSIDs (Coded Character …Run Code Online (Sandbox Code Playgroud)