Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Não é possível usar nomes de colunas na consulta de seleção no sqlfiddle (oracle)


[TL;DR] A coisa mais simples fazer é nunca usar aspas duplas em torno de nomes de objetos e apenas deixar o oracle gerenciar a distinção entre maiúsculas e minúsculas em sua maneira padrão.

No entanto, você pode usar aspas duplas no SQLFiddle:

SQL Fiddle

Configuração do esquema 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 |

Os bancos de dados Oracle são, por padrão, sensíveis a maiúsculas e minúsculas; no entanto, eles também, por padrão, converterão tudo em maiúsculas para que a distinção entre maiúsculas e minúsculas seja abstraída de você, o usuário. É somente quando você usa aspas duplas que o Oracle usará o caso que você especificar para o identificador.

Como você usou identificadores entre aspas no CREATE TABLE você também precisará usar identificadores entre aspas no SELECT instruções com o caso exato usado na criação da tabela.

Portanto, o nome da coluna não é ProductName é "ProductName" (com aspas duplas).

Uma solução melhor é não usar aspas duplas:

SQL Fiddle

Configuração do esquema 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 |