Document Type | Troubleshooting
Category | Administration
Applicable Product Versions | 6FS07, 6FS07PS, 7FS01, 7FS02, 7FS02PS
Document Number | TADTS006
Issue
When extracting PROCEDURE syntax in Tibero6 FS07_CS_2005 or earlier versions, the following two errors occur.
SQL> select to_char( dbms_metadata.get_ddl('PROCEDURE','SYSDATE_COUNT','TIBERO')) from dual;
TBR-14001: Not yet implemented.
TBR-15163: Unhandled exception at SYS.DBMS_METADATA, line 1874.
Cause
An error occurs because dbms_metadata.get_ddl is not supported in Tibero6 FS07_CS_2005 or earlier versions.
Solutions
In Tibero6 FS07_CS_2005 or earlier versions, the manual syntax extraction method using the DBA_SOURCE view can be used as an alternative.
1. Create test table
SQL> CREATE TABLE DAY_CK (DD VARCHAR2(10)); Table 'DAY_CK' created.
2. Create procedure
SQL> CREATE OR REPLACE PROCEDURE SYSDATE_COUNT(
Test_Date IN VARCHAR2
)
IS
TEMP VARCHAR(8);
BEGIN
TEMP := TO_CHAR(TO_DATE(Test_Date,'YYYYMMDD'),'DY');
INSERT INTO DAY_CK(DD) VALUES(TEMP);
COMMIT;
END;
/
3. Execute procedure
SQL> call SYSDATE_COUNT(20250219); PSM called. SQL> select * from DAY_CK; DD ---------- Wed 1 row selected.
4. Extract syntax
4.1 Tibero6 FS07_CS_2005 or later versions: Use dbms_metadata.get_ddl
--Syntax format
SQL> select to_char(dbms_metadata.get_ddl('object_type', 'object_name', 'schema_name')) from dual;SQL> select to_char( dbms_metadata.get_ddl('PROCEDURE','SYSDATE_COUNT','TIBERO')) from dual;
TO_CHAR(DBMS_METADATA.GET_DDL('PROCEDURE','SYSDATE_COUNT','TIBERO'))
--------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE "TIBERO".SYSDATE_COUNT(
Test_Date IN VARCHAR2
)
IS
TEMP VARCHAR(8);
BEGIN
TEMP := TO_CHAR(TO_DATE(Test_Date,'YYYYMMDD'),'DY');
INSERT INTO DAY_CK(DD) VALUES(TEMP);
COMMIT;
END
1 row selected.
4.2. Tibero6 FS07_CS_2005 or earlier versions: Extract syntax from DBA_SOURCE table
--Syntax format SQL> SELECT TEXT FROM DBA_SOURCE WHERE owner = 'schema_name' AND name = 'object_name' AND type = 'object_type';
SQL> SELECT text
FROM DBA_SOURCE
WHERE owner = 'TIBERO'
AND name = 'SYSDATE_COUNT'
AND type = 'PROCEDURE';
TEXT
--------------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE SYSDATE_COUNT(
Test_Date IN VARCHAR2
)
IS
TEMP VARCHAR(8);
BEGIN
TEMP := TO_CHAR(TO_DATE(Test_Date,'YYYYMMDD'),'DY');
INSERT INTO DAY_CK(DD) VALUES(TEMP);
COMMIT;
END;
13 rows selected.