sql >> Base de Datos >  >> RDS >> Oracle

No se pueden usar nombres de columnas en la consulta de selección en sqlfiddle (oracle)

[TL;RD] Lo más simple lo que debe hacer es nunca usar comillas dobles alrededor de los nombres de los objetos y simplemente dejar que Oracle administre la distinción entre mayúsculas y minúsculas de la forma predeterminada.

Sin embargo, puede usar comillas dobles en SQLFiddle:

SQL Fiddle

Configuración del esquema de 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
//

Consulta 1 :

SELECT "ProductName" FROM products

Resultados :

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

Las bases de datos de Oracle distinguen entre mayúsculas y minúsculas de forma predeterminada; sin embargo, también, de forma predeterminada, convertirán todo a mayúsculas para que la distinción entre mayúsculas y minúsculas se abstraiga de usted, el usuario. Solo cuando usa comillas dobles, Oracle usará el caso que especifique para el identificador.

Dado que usó identificadores entrecomillados en CREATE TABLE declaración, también necesitará usar identificadores entre comillas en el SELECT declaraciones con el caso exacto utilizado en la creación de la tabla.

Entonces, el nombre de la columna no es ProductName es "ProductName" (con comillas dobles).

Una mejor solución es no usar comillas dobles:

SQL Fiddle

Configuración del esquema de 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
//

Consulta 1 :

SELECT ProductName FROM products

Resultados :

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