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

Co dokładnie robią cudzysłowy wokół nazwy tabeli?

Umieszczenie podwójnego cudzysłowu wokół identyfikatora w Oracle powoduje, że Oracle traktuje identyfikator jako rozróżniający wielkość liter, zamiast używać domyślnej niewrażliwości na wielkość liter. Jeśli tworzysz tabelę (lub kolumnę) z podwójnymi cudzysłowami wokół nazwy, musisz zawsze odwoływać się do identyfikatora w podwójnych cudzysłowach i poprawnie określając wielkość liter (z wyjątkiem wszystkich identyfikatorów pisanych wielkimi literami, gdzie podwójne cudzysłowy nie mają znaczenia ).

Pod przykrywkami Oracle zawsze dopasowuje identyfikatory z uwzględnieniem wielkości liter. Ale zawsze rzuca identyfikatory, które nie są w podwójnym cudzysłowie, na duże litery przed wykonaniem dopasowania. Jeśli umieścisz podwójny cudzysłów wokół identyfikatora, Oracle pominie rzutowanie na wielkie litery.

Więc jeśli zrobisz coś takiego

CREATE TABLE my_table( 
  col1 number,
  col2 number
)

możesz

SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"

ale coś takiego

SELECT * FROM "my_table" 

nie powiedzie się.

Z drugiej strony, jeśli zrobisz coś takiego

CREATE TABLE "my_other_table"( 
  col1 number,
  col2 number
)

nie możesz zrobić

SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"

ale to

SELECT * FROM "my_other_table" 

zadziała



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dziesięć najważniejszych powodów, dla których warto przejść z Oracle na PostgreSQL

  2. Podłączanie Oracle do PostgreSQL

  3. Szybkie partycjonowanie

  4. Wszystkie przydatne dynamiczne widoki wydajności 11g

  5. 2 funkcje, które pobierają dzień, miesiąc i rok z daty w Oracle