将 SQL DDL 语句转换为 JSON 格式

Convert SQL DDL statements to JSON format

我想将 SQL DDL 语句转换为 JSON 格式。您能否提供以下脚本的 JSON 格式?

CREATE TABLE LME_TABLES_DB.AD_AGNCY_ORG

(
    AD_AGNCY_NBR VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
    PARENT_ADVERTISING_AGENCY_NUMB VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC,
    AD_AGNCY_NM VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC,
    PARTY_ID INTEGER,
    PARTY_SUBTYPE_CD CHAR(1) CHARACTER SET LATIN NOT CASESPECIFIC,
    ORG_TYPE_CD CHAR(3) CHARACTER SET LATIN NOT CASESPECIFIC,
    CREATE_DTTM TIMESTAMP(6),
    UPDT_DTTM TIMESTAMP(6),
    CUSTOMER_ID VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC
)

UNIQUE PRIMARY INDEX XPKAD_AGENCY_ORGANIZATION(AD_AGNCY_NBR, ORG_TYPE_CD);

没见过直接转换器。解决方法可以是 SQL DDL 转换为 XSD (xml)。然后 XML 映射到 JSON.

此工具可能能够完成您想要的部分或全部工作。 http://www.liquibase.org/ 如果您仍在努力,请告诉我!

您将需要使用一些 SQL DDL 解析器来创建它的 AST,然后您可以迭代该 AST 并生成您想要的任何内容。

常见的 JS 解析器之一是 PEG.js. There are some NPM 包,它在 PEG 语法中定义了 SQL DDL,因此您可以使用这些解析器。