如何解析 Oracle DDL 脚本?

如何解析 Oracle DDL 脚本?

我的问题是,我需要在元数据表中输入 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。

相关内容