Kbase P101277: Oracle DataServer Delta SQL utility is creating a bad SQL when the field name starts with *defaultx*
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  25/01/2007 |
|
Status: Unverified
FACT(s) (Environment):
Oracle DataServer
SYMPTOM(s):
Oracle DataServer Delta SQL utility is creating a bad SQL when the field name starts with *defaultx* when the default value is selected
The x in the *defaultx* represents any character.
Created an incremental delta.df file after adding a field name called defaultvalue
The field does not have any default or initial value assigned
The original length of the field in the Progress database is shown from the detail table report. The following fields are created to demonstrate the problem:
Field Name Format
-------------------------------- -----------------------------
fld1 x(30)
fld2 x(30)
defaultvalue1 x(10)
defaultvalue x(8)
default-1 x(4)
default1 x(8)
defaultval x(5)
def1 x(8)
defau x(8)
de x(8)
d x(8)
defaul x(8)
defaultv x(8)
Field Name Initial
-------------------------------- -----------------------------
fld1
fld2
defaultvalue1
defaultvalue
default-1
default1
defaultval
def1
defau
de
d
defaul
defaultv
All the check boxes in the generate delta.sql Progress to Oracle screen were selected.
The SQL generated by the Oracle DataServer Delta SQL utility with above scenario is:
SEQUENCE tbl2_SEQ;
CREATE SEQUENCE tbl2_SEQ START WITH 1 INCREMENT BY 1;
DROP TABLE tbl2 ;
CREATE TABLE tbl2 (
fld1 VARCHAR2(60) ,
fld2 VARCHAR2(60) ,
defaultvalue1 VARCHAR2(16) defaultvalue1 VARCHAR2 (10),
defaultvalue VARCHAR2(16) defaultvalue VARCHAR2 (30),
default_1 VARCHAR2(8) default_1 VARCHAR2 (4),
default1 VARCHAR2(16) default1 VARCHAR2 (30),
defaultval VARCHAR2(10) defaultval VARCHAR2 (5),
def1 VARCHAR2(16) ,
defau VARCHAR2(16) ,
de VARCHAR2(16) ,
d VARCHAR2(16) ,
defaul VARCHAR2(16) ,
defaultv VARCHAR2(16) defaultv VARCHAR2 (30),
PROGRESS_RECID NUMBER NULL)
;
CREATE UNIQUE INDEX tbl2##progress_recid ON tbl2(progress_recid)
;
Also tried by selecting all check boxes but not the SQL-WIDTH
The SQL generated by the Oracle DataServer Delta SQL utility with above scenario is:
DROP SEQUENCE tbl2_SEQ;
CREATE SEQUENCE tbl2_SEQ START WITH 1 INCREMENT BY 1;
DROP TABLE tbl2 ;
CREATE TABLE tbl2 (
fld1 VARCHAR2 (30),
fld2 VARCHAR2 (30),
defaultvalue1 VARCHAR2 (10),
defaultvalue VARCHAR2 (30),
default_1 VARCHAR2 (4),
default1 VARCHAR2 (30),
defaultval VARCHAR2 (5),
def1 VARCHAR2 (30),
defau VARCHAR2 (30),
de VARCHAR2 (30),
d VARCHAR2 (30),
defaul VARCHAR2 (30),
defaultv VARCHAR2 (30),
PROGRESS_RECID NUMBER NULL)
;
CREATE UNIQUE INDEX tbl2##progress_recid ON tbl2(progress_recid)
;
From the above generated SQL and comparing to the detail table report, it seems that the field name with just a letter *d* also caused the problem.
In either cases, the bad SQL was created in the .sql file
CAUSE:
Bug# 20050216-014
FIX:
For 9.1E, install service pack 9.1E04.
For OpenEdge 10.0B, install service pack OpenEdge 10.0B03.
If the service pack upgrade is not possible, follow the workaround below:
Manually modify to correct the SQL in the SQL file generated with the Oracle DataServer Delta SQL utility