sql >> Databasteknik >  >> RDS >> Oracle

När eller varför ska man använda en SET DEFINE OFF i Oracle Database

Som standard behandlar SQL Plus '&' som ett specialtecken som börjar en ersättningssträng. Detta kan orsaka problem när du kör skript som råkar innehålla '&' av andra anledningar:

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

Om du vet att ditt skript innehåller (eller kan inkludera) data som innehåller "&"-tecken, och du inte vill ha ersättningsbeteendet enligt ovan, använd set define off för att stänga av beteendet när du kör skriptet:

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 kanske vill lägga till set define on i slutet av skriptet för att återställa standardbeteendet.



  1. Skapa ett SQL Server Agent Job i Azure Data Studio

  2. Hur man konverterar versaler till gemener i MySQL

  3. Åtgärda felet "ORA-01789:frågeblocket har felaktigt antal resultatkolumner"

  4. ISJSON() Exempel i SQL Server (T-SQL)