I can create an example table using following syntax.
CREATE TABLE "TABLE2" (
"COLUMN_INT" INT NOT NULL,
"COLUMN_INTEGER" INTEGER NOT NULL,
"COLUMN_SMALLINT" SMALLINT NOT NULL,
"COLUMN_NUMBER" NUMBER NOT NULL,
"COLUMN_DECIMAL" DECIMAL NOT NULL);
After that I query USER_TAB_COLUMNS table using following query.
SELECT COLUMN_NAME,DATA_TYPE FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'TABLE2';
I get following result.
COLUMN_NAME DATA_TYPE
------------------------------ -------------
COLUMN_INT NUMBER
COLUMN_INTEGER NUMBER
COLUMN_SMALLINT NUMBER
COLUMN_NUMBER NUMBER
COLUMN_DECIMAL NUMBER
If I use VS.NET add-in for oracle to get DDL for this table. I get following.
-- ****** Object: Table DENEME.TABLE2 Script Date: 05.05.2013 21:43:11 ******
CREATE TABLE "TABLE2" (
"COLUMN_INT" NUMBER NOT NULL,
"COLUMN_INTEGER" NUMBER NOT NULL,
"COLUMN_SMALLINT" NUMBER NOT NULL,
"COLUMN_NUMBER" NUMBER NOT NULL,
"COLUMN_DECIMAL" NUMBER NOT NULL,
CHECK ("COLUMN_INT" IS NOT NULL),
CHECK ("COLUMN_INTEGER" IS NOT NULL),
CHECK ("COLUMN_SMALLINT" IS NOT NULL),
CHECK ("COLUMN_NUMBER" IS NOT NULL),
CHECK ("COLUMN_DECIMAL" IS NOT NULL))
/
If I use SQL Developer
--------------------------------------------------------
-- DDL for Table TABLE2
--------------------------------------------------------
CREATE TABLE "DENEME"."TABLE2"
( "COLUMN_INT" NUMBER(*,0),
"COLUMN_INTEGER" NUMBER(*,0),
"COLUMN_SMALLINT" NUMBER(*,0),
"COLUMN_NUMBER" NUMBER,
"COLUMN_DECIMAL" NUMBER(*,0)
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "USERS" ;
--------------------------------------------------------
-- Constraints for Table TABLE2
--------------------------------------------------------
ALTER TABLE "DENEME"."TABLE2" MODIFY ("COLUMN_DECIMAL" NOT NULL ENABLE);
ALTER TABLE "DENEME"."TABLE2" MODIFY ("COLUMN_NUMBER" NOT NULL ENABLE);
ALTER TABLE "DENEME"."TABLE2" MODIFY ("COLUMN_SMALLINT" NOT NULL ENABLE);
ALTER TABLE "DENEME"."TABLE2" MODIFY ("COLUMN_INTEGER" NOT NULL ENABLE);
ALTER TABLE "DENEME"."TABLE2" MODIFY ("COLUMN_INT" NOT NULL ENABLE);
If I use TOAD.
Toad give me following DDL.
CREATE TABLE TABLE2
(
COLUMN_INT INTEGER NOT NULL,
COLUMN_INTEGER INTEGER NOT NULL,
COLUMN_SMALLINT INTEGER NOT NULL,
COLUMN_NUMBER NUMBER NOT NULL,
COLUMN_DECIMAL INTEGER NOT NULL
)
;
It seems that I can not get INT, INTEGER values, I used in my create table syntax?
Int, Integer, small int seems to be a syntactic sugar only. But Toad at least holds information about INTEGER part even though he considers smallint,int,decimal and integer same.
Is there any way to find that if a column is INT/INTEGER/SMALLINT using SQL?