【发布时间】:2022-01-01 14:58:26
【问题描述】:
我有 SP,它查看 Info 模式列表并将小写列转换为大写。无法在对象周围包裹双码。
ALTER TABLE SCHEMA_S.TBLNAME RENAME COLUMN ColName to COLNAME; //Won't work
ALTER TABLE "SCHEMA_S"."TBLNAME" RENAME COLUMN "ColName" to "COLNAME"; //this works
select ('ALTER TABLE ' || TABLE_NAME || ' RENAME COLUMN "' || COLUMN_NAME || '" to "' ||
UPPER(COLUMN_NAME) || '";') AS COL1
from information_schema.columns
WHERE TABLE_NAME = 'TBLNAME' AND TABLE_SCHEMA = 'SCHEMA_S'
AND COLUMN_NAME != UPPER(COLUMN_NAME) //this works in Snowflake
但在 javascript 中,不能使用双引号 javascript
var table_control = " SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA,'.' ,TABLE_NAME, ' RENAME COLUMN ', COLUMN_NAME, ' to ', UPPER(COLUMN_NAME), ';') AS COL1 "
table_control += " FROM INFORMATION_SCHEMA.COLUMNS "
table_control += " WHERE TABLE_SCHEMA = " + String.fromCharCode(39) + CURRENT_SCHEMA + String.fromCharCode(39)
table_control += " AND TABLE_NAME = " + String.fromCharCode(39) + CURRENT_TABLE + String.fromCharCode(39)
table_control += " AND COLUMN_NAME != UPPER(COLUMN_NAME) " ; //this works
var table_control = " SELECT CONCAT('ALTER TABLE "', TABLE_SCHEMA,'"."' ,TABLE_NAME, '" RENAME COLUMN "', COLUMN_NAME, '" to "', UPPER(COLUMN_NAME), '";') AS COL1 "
table_control += " FROM INFORMATION_SCHEMA.COLUMNS "
table_control += " WHERE TABLE_SCHEMA = " + String.fromCharCode(39) + CURRENT_SCHEMA + String.fromCharCode(39)
table_control += " AND TABLE_NAME = " + String.fromCharCode(39) + CURRENT_TABLE + String.fromCharCode(39)
table_control += " AND COLUMN_NAME != UPPER(COLUMN_NAME) " ; //won't work
我在下面, JavaScript 编译错误:Uncaught SyntaxError: Unexpected string in CONVERT_TBL_COLUMNS_UPPERCASE at ' var table_control = " SELECT CONCAT('ALTER TABLE "', TABLE_SCHEMA,'"."' ,TABLE_NAME, '" RENAME COLUMN "', COLUMN_NAME, '" to "' , UPPER(COLUMN_NAME), '";') AS COL1 "' 位置 58
底线 - 需要通过仔细检查连接对象(列/模式/表),以便我可以通过 javascript 动态重命名列名大写。
请帮忙,我遗漏了一些简单的东西!
【问题讨论】:
-
这能回答你的问题吗? Escape quotes in JavaScript
标签: javascript stored-procedures snowflake-cloud-data-platform user-defined-functions