我的问题是,我需要在元数据表中输入 DDL 脚本列表的详细信息,但由于文件的大小,很难逐一完成。
我想检查程序是否有任何方法可以解析 DDL 脚本?我可以用 C# 或 NodeJS 编写程序。有什么逻辑建议吗?我需要识别表名、列、它们的类型和大小(如果有)。它应该理解 Alter 脚本并创建脚本。它应该忽略创建同义词和授予脚本。
你有什么建议?DDL 文件的格式如下:
ALTER TABLE GNMT_POLICY ADD V_TPA_COMP_BRANCH VARCHAR2(30);
/
CREATE TABLE TEMP_TEMPLATE_MASTER
(
N_TEST_ID NUMBER PRIMARY KEY ,
V_TEST_DESC VARCHAR2(100) NOT NULL,
V_TEMPLATE_PURPOSE VARCHAR2(1),
V_PLAN_CODE VARCHAR2(10) NOT NULL,
D_ACTIVE_FROM DATE,
D_ACTIVE_TO DATE,
N_TEMPLATE_TYPE NUMBER,
N_FIXED_COLUMN_LENGTH NUMBER,
V_DELIMITER VARCHAR2(1),
N_START_ROW NUMBER,
D_LASTUPD_INFTIM DATE
);
/
CREATE OR REPLACE PUBLIC SYNONYM TEMP_TEMPLATE_MASTERFOR TEMP_TEMPLATE_MASTER;
/
GRANT ALL ON TEMP_TEMPLATE_MASTER TO RFORALLOBJECTS;
/
CREATE TABLE TEMPLATE_DETAIL
(
N_TEMPLATE_ID NUMBER CONSTRAINT Fk_temp_gnmt_temp references mplate_Master(n_Template_ID),
V_PROP_REC_SEQ_NO VARCHAR2(25) NOT NULL,
V_LASTUPD_USER VARCHAR2(100) NOT NULL,
TABLE_NAME VARCHAR2(30),
N_SEQ_NO NUMBER
);
/
CREATE OR REPLACE PUBLIC SYNONYM TEMPLATE_DETAIL FOR TEMPLATE_DETAIL;
/
GRANT ALL ON TEMPLATE_DETAILTO RFORALLOBJECTS;
编辑1:根据 Seth 的评论,我在 youtube 上找到了一个有用的链接,它展示了 DDL 在 Oracle DB 中的工作方式。 关联。视频中说DDL是具有自动提交的DML。