问题描述
逻辑1:
Dcl-s WkoutJSON Char(16000000);
此wkoutJSON字段包含内置的JSON值
然后我要插入数据库
Insert into TBLPOST(TBLPAYLD)
Values(
Method 1 // cast(:wkoutJSON as dbclob(2g) ccsid 1200)
Method 2 // DBCLOB(:wkoutJSON,1073741823,CODEUNITS32));
我尝试了两种方式。两者都不起作用,无法声明wkoutJSON或不可用
逻辑2:
Dcl-s WkoutJSON Char(16000000);
Dcl-s DbClobVar sqlTYPE(DBCLOB:8386550);
此wkoutJSON字段包含内置的JSON值
DbClobVar_Data = %Trim(%Graph(wkoutJSON));
DbClobvar_Len = %Len(DbClobVar_Data);
然后我要插入数据库
Insert into TBLPOST(TBLPAYLD)
Values(:DbClobvar);
无法正常工作,未声明wkoutJSON或不可用
请帮助我将char值插入dbclob。
解决方法
Insert into TBLPOST(TBLPAYLD) Values( Method 1 // cast(:wkoutJSON as dbclob(2g) ccsid 1200) Method 2 // DBCLOB(:wkoutJSON,1073741823,CODEUNITS32));
未声明或无法获取wkoutJSON
这两种方法都试图在sql中使用:wrkoutJSON
,因为wrkoutJAOS
对于嵌入式SQL而言太大。但是你也说:
逻辑2:
Dcl-s WkoutJSON Char(16000000); Dcl-s DbClobVar SQLTYPE(DBCLOB:8386550);
此wkoutJSON字段包含内置的JSON值
DbClobVar_Data = %Trim(%Graph(wkoutJSON)); DbClobvar_Len = %Len(DbClobVar_Data);
然后我要插入数据库
Insert into TBLPOST(TBLPAYLD) Values(:DbClobvar);
无法正常工作,未声明wkoutJSON或不可用
这令人困惑,因为您没有在SQL中使用wrkoutJSON,而实际上这几乎是您要执行的操作的方式。但是,DbClobvar_DATA不是varchar,因此在加载之前修剪数据将无济于事。您真的需要:
DbClobVar_Data = %Graph(wkoutJSON);
DbClobvar_Len = %Len(%trim(DbClobVar_Data));