[TL;DR] Das Einfachste zu tun ist, niemals doppelte Anführungszeichen um Objektnamen zu verwenden und Oracle die Groß- und Kleinschreibung einfach in seiner Standardweise verwalten zu lassen.
Sie können jedoch in SQLFiddle doppelte Anführungszeichen verwenden:
Oracle 11g R2-Schema-Setup :
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
//
Abfrage 1 :
SELECT "ProductName" FROM products
| ProductName |
|-------------|
| Jarlsberg |
| Mascarpone |
| Gorgonzola |
Bei Oracle-Datenbanken wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden; sie werden jedoch auch standardmäßig alles in Großbuchstaben umwandeln, sodass die Groß- und Kleinschreibung von Ihnen, dem Benutzer, abstrahiert wird. Nur wenn Sie doppelte Anführungszeichen verwenden, verwendet Oracle die Groß-/Kleinschreibung, die Sie für den Bezeichner angeben.
Da Sie Bezeichner in Anführungszeichen in CREATE TABLE
verwendet haben -Anweisung müssen Sie auch Bezeichner in Anführungszeichen in SELECT
verwenden Anweisungen mit der genauen Groß- und Kleinschreibung, die bei der Tabellenerstellung verwendet wird.
Der Spaltenname ist also nicht ProductName
es ist "ProductName"
(mit den doppelten Anführungszeichen).
Eine bessere Lösung besteht darin, keine doppelten Anführungszeichen zu verwenden:
Oracle 11g R2-Schema-Setup :
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
//
Abfrage 1 :
SELECT ProductName FROM products
| PRODUCTNAME |
|-------------|
| Jarlsberg |
| Mascarpone |
| Gorgonzola |