Context
The "Text to DDL" feature on SQL Fiddle generates DDL like below for Oracle 11g R2.
CREATE TABLE Table1 ("value1" int) ; INSERT ALL INTO Table1 ("value1") VALUES (1) SELECT * FROM dual ;
Problem
This ordinal SELECT
clasuse returns ORA-00904: "VALUE1": invalid identifier
eror on this table.
select value1 from table1;
Reason
This is caused by design of Oracle, and "Text to DDL" feature on SQL Fiddle.
"Text to DDL" feature on SQL Fiddle always quote column name. In Oracle, quoted column names are treated as case sensitive name, and on the other hand, unquoted column names are treated as capitalized names.
It means CREATE TABLE Table1 ("value1" int);
creates a table with a column named value1
(case sensitive), and select value1 from table1;
searchs for a column named VALUE1
.
Solution
Remove quotes from DDL like:
CREATE TABLE Table1 (value1 int); INSERT INTO Table1 (value1) VALUES (1); select value1 from table1;
Or, add quotes to DML like:
CREATE TABLE Table1 ("value1" int); INSERT INTO Table1 ("value1") VALUES (1); select "value1" from table1;