如何使用sqlplus终端在Oracle DB中将大量数据插入“长”数据类型?

时间:2019-01-18 09:53:13

标签: oracle sqlplus

我的要求是将非常大的数据存储到Oracle DB中的“ LONG”数据类型列。 我知道对于CLOB和NCLOB,可以使用BFile(通过从文件读取它)来实现。但是我要怎么做

例如:插入测试(LONG_COL)值(“值超过4000个字符”);

此处LONG_COL是“ LONG”类型。

如果我在SQLPlus上执行查询,则会出现以下错误。

SQL Error: ORA-01704: string literal too long
01704. 00000 -  "string literal too long"
*Cause:    The string literal is longer than 4000 characters.
*Action:   Use a string literal of at most 4000 characters.
           Longer values may only be entered using bind variables.

请指导。

1 个答案:

答案 0 :(得分:0)

如错误消息所示,可以尝试的一种方法是使用绑定变量。如果您不熟悉它们,它们可能对许多事情都非常有用,包括在使用SQL * Plus时解决ORA-01704错误,甚至保护数据库免受潜在的SQL Injection攻击。

您可以使用以下两个示例:

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2320123769177

https://asktom.oracle.com/pls/asktom/asktom.search?tag=pls-00172-string-literal-too-long

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2320123769177

https://oracle-base.com/articles/misc/literals-substitution-variables-and-bind-variables