default со ссылкой на таблицу

_Nikotin
Дата: 30.11.2009 18:22:01
Столкнулся с подобрым синтаксисом

create table Table1
(
  ID               INTEGER not null,
  NAME     VARCHAR2(13) default 'XX-'||TRIM(TO_CHAR(ID,'000000000')),  
)

В 11.1.0.7.0 не работает, в 11.2.0.7.0 генерируется DDL с такой конструкцией.
Это действительно так?
suPPLer
Дата: 30.11.2009 18:32:30
_Nikotin
Столкнулся с подобрым синтаксисом

create table Table1
(
  ID               INTEGER not null,
  NAME     VARCHAR2(13) default 'XX-'||TRIM(TO_CHAR(ID,'000000000')),  
)


Это пока нигде не работает. Возможно, что Вы спутали с виртуальными столбцами:

create table test_Table1
(
  ID               INTEGER not null,
  NAME     VARCHAR2(13) as ('XX-'||TRIM(TO_CHAR(ID,'000000000')))
)

_Nikotin
в 11.2.0.7.0 генерируется DDL с такой конструкцией.


Ну, когда выйдет, тогда можно будет обсудить... :)
_Nikotin
Дата: 30.11.2009 21:13:48
suPPLer,

неа, DDL сгенерировался такой:
CREATE TABLE "S1"."TEST_TABLE1" 
   (	"ID" NUMBER(*,0) NOT NULL ENABLE, 
	"NAME" VARCHAR2(13) GENERATED ALWAYS AS ('XX-'||TRIM(TO_CHAR("ID",'000000000'))) VIRTUAL VISIBLE 
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS" ;
 
  ALTER TABLE "S1"."TEST_TABLE1" MODIFY ("ID" NOT NULL ENABLE);

а эта пришли из экспорта схемы в таком виде:

create table S1.TABLE1
(
  ID               INTEGER not null,
  NAME             VARCHAR2(200) not null,
  ORGANIZATION     VARCHAR2(25) not null,
  FORMAT           VARCHAR2(50),
  PURPOSE          VARCHAR2(50),
  GROUP_ID         INTEGER,
  PROTOCOL_ID      INTEGER,
  RUN_DATE         DATE,
  VERSION_NAME     VARCHAR2(125),
  CATEGORY         VARCHAR2(50),
  NAME_ID     VARCHAR2(13) default 'NA-'||TRIM(TO_CHAR("ID",'000000000')),
  CREATED_ON       TIMESTAMP(6),
  CREATED_BY       INTEGER,
  MODIFIED_ON      TIMESTAMP(6),
  MODIFIED_BY      INTEGER
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

экспортировали PLSQL developer-ом при помощи "Export User Objects"
suPPLer
Дата: 30.11.2009 22:30:12
_Nikotin,

и что Вы хотите спросить? Столбец виртуальный.

_Nikotin
	"NAME" VARCHAR2(13) GENERATED ALWAYS AS ('XX-'||TRIM(TO_CHAR("ID",'000000000'))) VIRTUAL VISIBLE 


А PL/SQL выгружает как обычный, но с неправильным синтаксисом:

автор
  NAME_ID     VARCHAR2(13) default 'NA-'||TRIM(TO_CHAR("ID",'000000000')),


И это уже вопрос к техподдержке PL/SQL Developer, почему он так криво выгружает.
SY
Дата: 30.11.2009 22:57:03
suPPLer
И это уже вопрос к техподдержке PL/SQL Developer, почему он так криво выгружает.


Could be simply lower client and/or PL/SQL Developer version.

SY.