我拼了一段sql insertsql := 'insert into IF_ENERGY_HIS_SUB
values
(' || COL_ENERGY_HIS_SUB.ENERGY_HIS_SUB_ID || ',' ||
COL_ENERGY_HIS_SUB.orgid || ',' ||
COL_ENERGY_HIS_SUB.equip_id || ',' ||
COL_ENERGY_HIS_SUB.energy_type_id || ',' ||
COL_ENERGY_HIS_SUB.ym || ',' ||
COL_ENERGY_HIS_SUB.consume_sub || ',' ||
COL_ENERGY_HIS_SUB.output || ',' ||
COL_ENERGY_HIS_SUB.process_equip || ',' ||
COL_ENERGY_HIS_SUB.ym || ');';
然后执行EXECUTE IMMEDIATE insertsql;
v_record_number:=SQL%ROWCOUNT;
dbms_output.put_line(v_record_number) ; --输出正确结果
commit; --提交结果
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(' 错误原因:【 '||SQLERRM||' 】'|| insertsql) ; --输出错误处理
begin
commit;
end;意在如果成功的话,打印出执行成功的记录,不成功的话,打出错误原因,不过确实是错的,执行如下: 错误原因:【 ORA-00972: identifier is too long 】insert into IF_ENERGY_HIS_SUB
values
(B1303C70C98647799B04CF7AC7EB3C2D,11,3165B160B23E46BEA46F94BC12470FF5,33B3E09D4F3A4CDFA0750639B9E1FFB3,01-FEB-11,.08,,0,01-FEB-11);请问是不是我的串拼的不对阿,应该择优写呢
values
(' || COL_ENERGY_HIS_SUB.ENERGY_HIS_SUB_ID || ',' ||
COL_ENERGY_HIS_SUB.orgid || ',' ||
COL_ENERGY_HIS_SUB.equip_id || ',' ||
COL_ENERGY_HIS_SUB.energy_type_id || ',' ||
COL_ENERGY_HIS_SUB.ym || ',' ||
COL_ENERGY_HIS_SUB.consume_sub || ',' ||
COL_ENERGY_HIS_SUB.output || ',' ||
COL_ENERGY_HIS_SUB.process_equip || ',' ||
COL_ENERGY_HIS_SUB.ym || ');';
然后执行EXECUTE IMMEDIATE insertsql;
v_record_number:=SQL%ROWCOUNT;
dbms_output.put_line(v_record_number) ; --输出正确结果
commit; --提交结果
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(' 错误原因:【 '||SQLERRM||' 】'|| insertsql) ; --输出错误处理
begin
commit;
end;意在如果成功的话,打印出执行成功的记录,不成功的话,打出错误原因,不过确实是错的,执行如下: 错误原因:【 ORA-00972: identifier is too long 】insert into IF_ENERGY_HIS_SUB
values
(B1303C70C98647799B04CF7AC7EB3C2D,11,3165B160B23E46BEA46F94BC12470FF5,33B3E09D4F3A4CDFA0750639B9E1FFB3,01-FEB-11,.08,,0,01-FEB-11);请问是不是我的串拼的不对阿,应该择优写呢
long的原因就是串拼的不对因此太长,但是又不知道怎么拼
values
(''' || COL_ENERGY_HIS_SUB.ENERGY_HIS_SUB_ID || ''',' ||
后面是字符串类型的如法炮制。
对头,你可以首先把该SQL打印出来,看是否拼接正确。