首页 > 解决方案 > 从 Oracle sqlplus 中的 shell 脚本将大字符串插入到列类型 CLOB

问题描述

我想编写一个连接到我的 oracle 数据库并更新列类型 clob 的 shell 脚本。这个 clob 的值是从一个文件(它是一个 xml)中读取的,并从我的脚本中读取到一个变量中,然后从 sqlplus 执行查询。

我已经编写了一个脚本,它读取一个包含大约 30000 个字符的 file-abc.xml。连接工作正常,因为我执行了一些其他插入查询没有问题

#!/bin/sh
value=$(<abc.xml)
query="UPDATE MY_CLOB_TABLE SET MY_CLOB_COLUMN=TO_CLOB('$value') WHERE MY_OTHER_COLUMN='AnotherColumn';"
echo $query | sqlplus -s $ORACLE_CON_STRING 

我收到一条错误消息

Input truncated to 7499 characters
SP2-0027: Input is too long (> 2499 characters) - line ignored

如何将这样的大文件插入到 clob 中?

标签: oraclesqlplusclob

解决方案


请检查下面的帖子并尝试将查询修改为多行

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


推荐阅读