我正在观看 Oracle 中的脚本,我看到了一些我不认识的东西
REM INSERTING into database1."Users"
SET DEFINE OFF;
Insert into database1."Users" ("id","right") values ('1','R');
我正在寻找有关“设置定义关闭”的文档,它的字面意思是“禁用命令解析以用其值替换替换变量”
我实在不明白他们想说什么。
谁能帮我?
默认情况下,SQL Plus 将“&”视为开始替换字符串的特殊字符。当运行由于其他原因恰好包含“&”的脚本时,这可能会导致问题:
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
Enter value for spencers:
old 1: insert into customers (customer_name) values ('Marks & Spencers Ltd')
new 1: insert into customers (customer_name) values ('Marks Ltd')
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks Ltd
如果您知道您的脚本包含(或可能包含)包含“&”字符的数据,并且您不希望出现上述替换行为,则使用set define off
运行脚本时关闭该行为:
SQL> set define off
SQL> insert into customers (customer_name) values ('Marks & Spencers Ltd');
1 row created.
SQL> select customer_name from customers;
CUSTOMER_NAME
------------------------------
Marks & Spencers Ltd
您可能想添加set define on
在脚本末尾恢复默认行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)