sql >> Database >  >> RDS >> Oracle

Wanneer of waarom een ​​SET DEFINE OFF gebruiken in Oracle Database?

Standaard behandelt SQL Plus '&' als een speciaal teken dat begint met een vervangende tekenreeks. Dit kan om andere redenen problemen veroorzaken bij het uitvoeren van scripts die '&' bevatten:

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

Als u weet dat uw script gegevens bevat (of kan bevatten) die '&'-tekens bevatten, en u niet wilt dat het vervangingsgedrag zoals hierboven wordt beschreven, gebruik dan set define off om het gedrag tijdens het uitvoeren van het script uit te schakelen:

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

Misschien wilt u set define on . toevoegen aan het einde van het script om het standaardgedrag te herstellen.



  1. Grote parameters gebruiken voor Microsoft SQL-opgeslagen procedure met DAO

  2. Oracle:meerdere tabelupdates => ORA-01779:kan geen kolom wijzigen die is toegewezen aan een niet-sleutelbewaarde tabel

  3. Retourneer een lijst met tabellen en weergaven in SQL Server met behulp van T-SQL (sp_tables)

  4. TAN() Voorbeelden in SQL Server