oracle rem inserting into,何时或为什么要在Oracle数据库中使用“SET DEFINE OFF”

默认情况下,SQL Plus处理’&’作为开始替换字符串的特殊字符。这可能会导致运行脚本的问题,而这些脚本恰好包含’&’由于其他原因: SQL> insert

默认情况下,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,以恢复默认行为。