sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE;
改为:sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE.AVA_PRIMARYID;
sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE;
改为:sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE.AVA_PRIMARYID;
谢谢!是因为MATERIAL_CODE的类型不对?
sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE;
改为:sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE.AVA_PRIMARYID;
谢谢!是因为MATERIAL_CODE的类型不对?
不是,你理解错了,这里的MATERIAL_CODE并不是直接获得了值,而是获得了一个结果集。其实这里就是一个游标的用法。
你想想,如果你的SQL:
SELECT DISTINCT AUD.AVA_PRIMARYID FROM R5AUDVALUES AUD 如果查询了两个字段该怎么办?
这里其实就好比一个结构体,调用值时须指定里面的字段。
sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE;
改为:sqlString:='SELECT
RANK() OVER (ORDER BY AVA_CHANGED) ORD,
AVA_PRIMARYID,
AVA_FROM,
AVA_TO,AVA_CHANGED
FROM R5AUDVALUES
WHERE AVA_PRIMARYID='||MATERIAL_CODE.AVA_PRIMARYID;
谢谢!是因为MATERIAL_CODE的类型不对?
for loop的游标是不用定义的,所以你不用定义MATERIAL_CODE