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

Tidak dapat menggunakan nama kolom dalam kueri pemilihan di sqlfiddle (Oracle)

[TL;DR] Hal paling sederhana yang harus dilakukan adalah jangan pernah menggunakan tanda kutip ganda di sekitar nama objek dan biarkan Oracle mengelola sensitivitas huruf besar-kecil secara default.

Namun, Anda dapat menggunakan tanda kutip ganda di SQLFiddle:

SQL Fiddle

Pengaturan Skema Oracle 11g R2 :

CREATE TABLE products
("P_Id" int, "ProductName" varchar2(10), "UnitPrice" numeric, "UnitsInStock" int, "UnitsOnOrder" int)
//

INSERT ALL 
INTO products ("P_Id", "ProductName", "UnitPrice", "UnitsInStock", "UnitsOnOrder")
 VALUES (1, 'Jarlsberg', 10.45, 16, 15)
INTO products ("P_Id", "ProductName", "UnitPrice", "UnitsInStock", "UnitsOnOrder")
 VALUES (2, 'Mascarpone', 32.56, 23, NULL)
INTO products ("P_Id", "ProductName", "UnitPrice", "UnitsInStock", "UnitsOnOrder")
 VALUES (3, 'Gorgonzola', 15.67, 9, 20)
SELECT * FROM dual
//

Kueri 1 :

SELECT "ProductName" FROM products

Hasil :

| ProductName |
|-------------|
|   Jarlsberg |
|  Mascarpone |
|  Gorgonzola |

Database Oracle, secara default, peka huruf besar/kecil; namun, mereka juga akan, secara default, mengonversi semuanya menjadi huruf besar sehingga sensitivitas huruf besar disarikan dari Anda, pengguna. Hanya ketika Anda menggunakan tanda kutip ganda, Oracle akan menggunakan kasus yang Anda tentukan untuk pengidentifikasi.

Karena Anda menggunakan pengenal yang dikutip di CREATE TABLE pernyataan Anda juga perlu menggunakan pengenal yang dikutip di SELECT pernyataan dengan kasus yang tepat yang digunakan dalam pembuatan tabel.

Jadi, nama kolomnya bukan ProductName itu adalah "ProductName" (dengan tanda kutip ganda).

Solusi yang lebih baik adalah tidak menggunakan tanda kutip ganda:

SQL Fiddle

Pengaturan Skema Oracle 11g R2 :

CREATE TABLE products(
  P_Id         int,
  ProductName  varchar2(10),
  UnitPrice    numeric,
  UnitsInStock int,
  UnitsOnOrder int
)
//

INSERT INTO products ( P_Id, ProductName, UnitPrice, UnitsInStock, UnitsOnOrder )
  SELECT 1, 'Jarlsberg', 10.45, 16, 15 FROM DUAL UNION ALL
  SELECT 2, 'Mascarpone', 32.56, 23, NULL FROM DUAL UNION ALL
  SELECT 3, 'Gorgonzola', 15.67, 9, 20 FROM DUAL
//

Kueri 1 :

SELECT ProductName FROM products

Hasil :

| PRODUCTNAME |
|-------------|
|   Jarlsberg |
|  Mascarpone |
|  Gorgonzola |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konversi zona waktu dalam kueri SQL

  2. Apa dan kapan saya harus menentukan setFetchSize()?

  3. SQL - Cara memilih baris yang memiliki kolom dengan nilai maksimal

  4. SqlDeveloper:hapus daftar alias jaringan

  5. Oracle:Apakah klien oracle 10g bekerja dengan server 11g?