我的要求是将非常大的数据存储到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.
请指导。
答案 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