作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在观看 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
以恢复默认行为。
关于oracle - 何时或为何在 Oracle 数据库中使用 "SET DEFINE OFF",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34332639/
我是一名优秀的程序员,十分优秀!