Rumah > pangkalan data > tutorial mysql > Mengapa Tanda Sebut Harga Sekitar Nama Jadual Oracle Mempengaruhi Pelaksanaan Pertanyaan?

Mengapa Tanda Sebut Harga Sekitar Nama Jadual Oracle Mempengaruhi Pelaksanaan Pertanyaan?

DDD
Lepaskan: 2025-01-14 22:27:50
asal
336 orang telah melayarinya

Why Do Quotation Marks Around Oracle Table Names Affect Query Execution?

Petikan berganda dalam nama jadual pangkalan data Oracle: analisis kepentingan

Sekeping kod NHibernate cuba melaksanakan pertanyaan berikut:

<code class="language-sql">SELECT * FROM "site" WHERE site_id = 3;</code>
Salin selepas log masuk

Hasilnya ialah ralat "Jadual atau paparan tidak wujud". Walau bagaimanapun, pertanyaan berikut berfungsi dengan baik:

<code class="language-sql">SELECT * FROM site WHERE site_id = 3;</code>
Salin selepas log masuk

Perbezaan ini terhasil daripada perbezaan Oracle antara sensitiviti kes pengecam.

Sensitiviti huruf besar bagi pengecam Oracle

Secara lalai, Oracle merawat pengecam dalam cara yang tidak peka huruf besar-besaran, yang bermaksud "tapak" dan "Tapak" merujuk kepada jadual yang sama. Walau bagaimanapun, jika anda menyertakan pengecam dalam petikan berganda (" ") dalam pertanyaan, Oracle menganggapnya sebagai sensitif huruf besar-besaran.

Kesan pada pertanyaan

Jika jadual dibuat tanpa petikan berganda, Oracle akan menyimpan namanya dalam huruf besar. Oleh itu, pertanyaan seperti "SELECT * FROM my_table" akan berfungsi tanpa mengira kes.

Walau bagaimanapun, jika anda menyertakan nama jadual dalam petikan berganda semasa mencipta jadual ("CREATE TABLE "my_table""), Oracle akan mengekalkan kes tepatnya. Dalam kes ini, pertanyaan mesti menggunakan huruf besar yang betul semasa merujuk jadual, seperti "PILIH * DARI "jadual_saya"".

Peranan NHibernate

Dalam NHibernate, anda boleh menentukan nama jadual dengan atau tanpa petikan berganda. Jika anda meninggalkan petikan berganda, NHibernate secara automatik menganggap perbandingan tidak sensitif huruf besar-besaran. Walau bagaimanapun, NHibernate menjana pertanyaan SQL sensitif huruf besar-besaran jika petikan berganda hadir dalam pemetaan.

Aplikasi Praktikal

Memahami kesan petikan berganda pada nama jadual adalah penting untuk prestasi pertanyaan. Penggunaan petikan berganda yang konsisten untuk jadual sensitif huruf besar-kecil memastikan Oracle cepat mencari jadual yang betul tanpa penukaran yang tidak perlu. Jika tidak, ralat atau isu prestasi mungkin berlaku.

Atas ialah kandungan terperinci Mengapa Tanda Sebut Harga Sekitar Nama Jadual Oracle Mempengaruhi Pelaksanaan Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan