NUMBER误认为是BLOB

时间:2014-01-25 03:38:50

标签: oracle numbers

我使用Oracle数据库,我想从表中找出包含“insert into”的句子 T_CARDNO_SETUP使用以下内容:

select 'INSERT INTO T_CARDNO_SETUP
 (CARDTYPE, CARDNOTYPE, BEGINCARDNO, ENDCARDNO, CARDBIN, ORGANID, ORGANNAME, CARDBIE, STATUS)
 VALUES(' || '''' || CARDTYPE ||'''' || ','|| '''' || CARDNOTYPE || '''' || ','|| '''' || BEGINCARDNO || '''' || ','|| '''' || ENDCARDNO || '''' || ','|| '''' || CARDBIN || '''' || ','|| '''' || ORGANID || '''' || ','|| '''' || ORGANNAME || '''' || ','|| '''' || CARDBIE || '''' || ','|| '''' || STATUS || '''' ||');'
 From T_CARDNO_SETUP;

问题是有一个提交ENDCARDNO是一种NUMBER,而我使用上面的句子并得到提交的ENDCARDNO变成BLOB类,报告错误。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我假设您正在生成INSERT个语句。对于NUMBER列,您可以忽略附加单引号,因此它们始终被视为NUMBER

 select 'INSERT INTO T_CARDNO_SETUP
 (CARDTYPE, CARDNOTYPE, BEGINCARDNO, ENDCARDNO, CARDBIN, ORGANID, ORGANNAME, CARDBIE, STATUS)
 VALUES(' || '''' || CARDTYPE    || '''' || ','||
             '''' || CARDNOTYPE  || '''' || ','||
             '''' || BEGINCARDNO || '''' || ','||
            /* '''' || ENDCARDNO   || '''' || ','||  */
                     ENDCARDNO   || ',' ||
             '''' || CARDBIN     || '''' || ','||
             '''' || ORGANID     || '''' || ','|| 
             '''' || ORGANNAME   || '''' || ','||
             '''' || CARDBIE     || '''' || ','||
             '''' || STATUS      || '''' ||');'
 From T_CARDNO_SETUP;