Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apa sebenarnya yang dilakukan tanda kutip di sekitar nama tabel?

Menempatkan tanda kutip ganda di sekitar pengidentifikasi di Oracle menyebabkan Oracle memperlakukan pengidentifikasi sebagai case sensitif daripada menggunakan default case-insensitivity. Jika Anda membuat tabel (atau kolom) dengan tanda kutip ganda di sekitar nama, Anda harus selalu merujuk ke pengidentifikasi dengan tanda kutip ganda dan dengan benar menentukan kasus (dengan pengecualian semua pengidentifikasi huruf besar, di mana tanda kutip ganda tidak berarti ).

Di bawah selimut, Oracle selalu melakukan pencocokan pengidentifikasi peka huruf besar-kecil. Tapi itu selalu melemparkan pengidentifikasi yang tidak dikutip ganda ke huruf besar sebelum melakukan pencocokan. Jika Anda menempatkan tanda kutip ganda di sekitar pengidentifikasi, Oracle melewatkan casting ke huruf besar.

Jadi jika Anda melakukan sesuatu seperti

CREATE TABLE my_table( 
  col1 number,
  col2 number
)

kamu bisa

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

tapi sesuatu seperti

SELECT * FROM "my_table" 

akan gagal.

Di sisi lain, jika Anda melakukan sesuatu seperti

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

kamu tidak bisa melakukan

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

tapi ini

SELECT * FROM "my_other_table" 

akan bekerja



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kueri yang menampilkan gabungan luar berperilaku berbeda di Oracle 12c

  2. Bagaimana menghubungkan database Oracle dari PHP

  3. Bagaimana menemukan perbedaan nilai format TIMESTAMP b/w di Oracle?

  4. Menjaga agnostik database aplikasi (ADO.NET vs enkapsulasi logika DB)

  5. Oracle:perbedaan antara max(id)+1 dan sequence.nextval