Hi,
I am having an error when i try to open a table "Cliente" on DB Painter in PB22 R3 thrown the Ora Oracle conecction driver on a Oracle 19c Database.
In the trace, when i try to open the table in PB22, seems pb is checking DATA_DEFAULT for all Number Columns of the table, but in the query the table_name has two simple quotes and a table_name Anec, that not exists and i don´t know why is this query is generated.
If I connect the same database in PB19 thrown Ora Oracle driver or in PB22 with ORA9 driver, pb don´t check this and don´t fails.
Can anyone help me to undertand what is happening and how to solve it.
PB19 BUILD 2170 (trace)
(05110008): COLUMNS INFORMATION: TABLE=cliente OWNER=XXXX
(05110008): SELECT COLUMN_NAME, COLUMN_ID, DATA_TYPE_OWNER, DATA_TYPE, DATA_LENGTH, CHAR_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, DATA_DEFAULT FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME = :1 AND OWNER = :2 ORDER BY COLUMN_ID (0.002 MS / 5865.981 MS) (5406.985 MS / 11272.966 MS)
(05110008): SELECT INDEX_NAME, UNIQUENESS FROM SYS.ALL_INDEXES WHERE TABLE_OWNER = :1 AND TABLE_NAME = :2 (0.000 MS / 11272.966 MS)
PB22R3 BUILD 3289 (trace)
03DAC07C): COLUMNS INFORMATION: TABLE=cliente OWNER=XXXX
(03DAC07C): SELECT COLUMN_NAME, COLUMN_ID, DATA_TYPE_OWNER, DATA_TYPE, DATA_LENGTH, CHAR_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, DATA_DEFAULT FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME = :1 AND OWNER = :2 ORDER BY COLUMN_ID(DBI_DEBUG_MESSAGE) (0.000 MS / 6696.824 MS)
(03DAC07C): SELECT DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ''ANEC'' AND COLUMN_NAME = 'CAPITAL_SOCIAL'(DBI_DEBUG_MESSAGE) (0.002 MS / 6696.826 MS)
(03DAC07C): SELECT SEQS.SEQUENCE_NAME FROM USER_TABLES TABS JOIN USER_TRIGGERS TRIGS ON TRIGS.TABLE_NAME = TABS.TABLE_NAME JOIN USER_DEPENDENCIES DEPS ON DEPS.NAME = TRIGS.TRIGGER_NAME JOIN USER_SEQUENCES SEQS ON SEQS.SEQUENCE_NAME = DEPS.REFERENCED_NAME WHERE TABS.TABLE_NAME=''ANEC''(DBI_DEBUG_MESSAGE) (0.002 MS / 6696.828 MS)
(03DAC07C): *** ERROR 933 ***(rc -1) : ORA-00933: comando SQL no terminado correctamente
TESTING THE ERROR:
This simple table fails for me when I try to open it on PB22R3 Build 3289 DB Painter with a Ora Oracle connection to Oracle 19c (tested with 19.19 and 19.23) and Oracle Client "instantclient_19_20":
CREATE TABLE "TMP_TABLE_TEST"
(
"PKCOL" VARCHAR2(5) NOT NULL,
"COL1" NUMBER(7,0),
"COL2" VARCHAR2(10) DEFAULT 'dd/mm/yyyy',
"COL3" VARCHAR2(1) DEFAULT 'N'
);
In the DB trace, a query is launched to check the default value of the numerical field and in the condition of said query, it includes the default value
''dd/mm/yyyy'' between two single quotes as TABLE_NAME .
...
SELECT DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ''DD/MM/YYYY'' AND COLUMN_NAME = 'COL1'(DBI_DEBUG_MESSAGE) (0.001 MS / 2795.950 MS)
(00EA1818): SELECT SEQS.SEQUENCE_NAME FROM USER_TABLES TABS JOIN USER_TRIGGERS TRIGS ON TRIGS.TABLE_NAME = TABS.TABLE_NAME JOIN USER_DEPENDENCIES DEPS ON DEPS.NAME = TRIGS.TRIGGER_NAME JOIN USER_SEQUENCES SEQS ON SEQS.SEQUENCE_NAME = DEPS.REFERENCED_NAME WHERE TABS.TABLE_NAME=''DD/MM/YYYY''(DBI_DEBUG_MESSAGE) (0.001 MS / 2795.951 MS)
(00EA1818): *** ERROR 933 ***(rc -1) : ORA-00933: comando SQL no terminado correctamente
Regards,
Julián i.
(0FE60C10): SELECT DATA_DEFAULT FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ''DD/MM/YYYY'' AND COLUMN_NAME = 'CAPITAL_SOCIAL'(DBI_DEBUG_MESSAGE) (0.002 MS / 2338.922 MS)
(0FE60C10): *** ERROR 933 ***(rc -1) : ORA-00933: comando SQL no terminado correctamente.
All DBMS dates should be in ISO format to be safe => "CCYY/MM/DD" (as that is how dates are stored internally by DBMS engines..
Food for thought