插入时出现 Oracle 错误 SP2-0734
Posted
技术标签:
【中文标题】插入时出现 Oracle 错误 SP2-0734【英文标题】:Oracle error SP2-0734 on insert 【发布时间】: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中尝试复制/粘贴错误的行,如果我在多行上剪切行就可以了...
我正在寻找一种解决方案,而不是创建一个外壳来滑倒所有的长线。
谢谢
【问题讨论】:
【参考方案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
我希望有时间研究更好的解决方案
【讨论】:
以上是关于插入时出现 Oracle 错误 SP2-0734的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CONCAT 解决 SQL Plus 中的 SP2-0734?
在sql plus 中,运行dbms_output.put时提示SP2-0734: unknown command beginning 请问是何缘故?
SP2-0734: 未知的命令开头 "imp scott/..." - 忽略了剩余的行。