【问题标题】:Oracle error SP2-0734 on insert插入时出现 Oracle 错误 SP2-0734
【发布时间】:2017-10-27 08:45:14
【问题描述】:

我在服务器Oracle版本10.2.0.5上直接使用sqlplus

我在使用类似这样的简单脚本加载数据时遇到问题

alter session set NLS_NUMERIC_CHARACTERS = ",.";
SET SQLBLANKLINES ON;
SET FEEDBACK OFF;
@TEST_DATA_TABLE.sql
commit;

文件 TEST_DATA_TABLE.sql

SET DEFINE OFF;
Insert into test ( ID_TEST, .... ) values ('1',....);
Insert into test ( ID_TEST, .... ) values ('2',....);
...
Insert into test ( ID_TEST, .... ) values ('10',...,.... 'jlkjlkdjs');
...
Insert into test ( ID_TEST, .... ) values ('500000',....);
...

对于所有行太长,我都有以下错误示例: SP2-0734:以“jlkj .......”开头的未知命令 - 忽略行的其余部分。 其他行没问题

限制似乎是 arround 255 个字符在同一行! 我直接在sqlplus中尝试复制/粘贴错误的行,如果我在多行上剪切行就可以了...

我正在寻找一种解决方案,而不是创建一个外壳来滑倒所有的长线。

谢谢

【问题讨论】:

    标签: oracle sqlplus


    【解决方案1】:

    关于文档是正常的: https://docs.oracle.com/cd/B19306_01/server.102/b14357/apa.htm

    为了插入更多数据,我这样做了:

    for file in *DATA*.sql
    do
      wc -l  ${file}
      sed 's/ values / values\n /g' $file > IMPORT/$file
      dos2unix  IMPORT/"$file" IMPORT/"$file"
      cat IMPORT/"$file" | awk 'length($0) > 240' | wc -l
    done
    

    我希望有时间研究更好的解决方案

    【讨论】:

      猜你喜欢
      • 2014-05-22
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多