sql >> Database teknologi >  >> RDS >> Oracle

Hvornår eller hvorfor skal man bruge en SET DEFINE OFF i Oracle Database

Som standard behandler SQL Plus '&' som et specialtegn, der starter en substitutionsstreng. Dette kan forårsage problemer, når du kører scripts, der tilfældigvis indeholder '&' af andre årsager:

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

Hvis du ved, at dit script indeholder (eller kan inkludere) data, der indeholder '&'-tegn, og du ikke ønsker substitutionsadfærden som ovenfor, så brug set define off for at deaktivere adfærden, mens du kører scriptet:

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

Du vil måske tilføje set define on i slutningen af ​​scriptet for at gendanne standardadfærden.



  1. Hent det sidst indsatte række-id (med SQL-sætning)

  2. Duplikere poster for at udfylde hullet mellem datoer

  3. Failover for PostgreSQL-replikering 101

  4. Rul tilbage til traditionel replikering fra GTID