我有一个脚本,现在有必要在当前语句中添加一个从用户接收的COMMENT文本作为参数。下面是一个例子,但它失败了。有人能帮助我吗?
\<sup\>#!/usr/bin/ksh
export COMMENTS=${1}
echo ${COMMENTS}
echo "========================================="
sqlplus -s $CONNECT_STRING \<\<-EOF
whenever sqlerror exit 2;
insert into TEST_CACM (COMMENTS) values ('${COMMENTS}');
commit;
EOF\</sup\>
当我们执行它失败,因为特殊字符.
<kbd>test.ksh "Let's test this ##@@"
Let's test this ##@@
=========================================
ERROR:
ORA-01756: quoted string not properly terminated</kbd>
注:用户可以添加任何注解。用户添加的任何注解都应存储在表中。
1条答案
按热度按时间q35jwt9p1#
或者:
1.传入字符串值时,转义字符串值中的单引号:
1.使用q引号字符串(不要将q引号字符串的结束表达式作为参数的子字符串传递):
1.或者将所有单引号替换为两个单引号:
1.不要使用SQL*Plus,而是用另一种语言(即Python、Java、C#等)编写一个小应用程序,允许您使用参数化查询并将命令行参数作为绑定变量传递。