Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Kiedy lub dlaczego używać opcji SET DEFINE OFF w bazie danych Oracle

Domyślnie SQL Plus traktuje „&” jako znak specjalny, który rozpoczyna łańcuch zastępczy. Może to powodować problemy podczas uruchamiania skryptów, które zawierają „&” z innych powodów:

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

Jeśli wiesz, że twój skrypt zawiera (lub może zawierać) dane zawierające znaki '&' i nie chcesz, aby zachowanie podstawiania było takie jak powyżej, użyj set define off aby wyłączyć zachowanie podczas uruchamiania skryptu:

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

Możesz dodać set define on na końcu skryptu, aby przywrócić domyślne zachowanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z Oracle SQL*Plus

  2. Jak uzyskać nazwy kolumn z tabeli w Oracle?

  3. Skrypt do znajdowania wielopoziomowych zależności pakietu

  4. Oracle UTL_SMTP:przykład wysyłania poczty z załącznikiem przy użyciu uwierzytelniania portfela Oracle

  5. Zapytanie o kilka NEXTVAL z sekwencji w jednej instrukcji