将 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,因此您可以使用这些解析器。
我想将 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,因此您可以使用这些解析器。