大纲视图/gh> 基于指针的FOR循环 立即执行
- RunSHOW SCHEMAS IN DATABASE D_DATAVAULT获取D_DATAVAULT 中所有可用模式的列表
- 放置名称列
- 循环创建模式克隆使用向量或列表
项目1-3的视觉辅助
注:克隆数据库不适用于我们。我们希望保留模式的所有权/私有权。
输出应该是在新数据库中创建的模式。
可以使用雪花脚本实现此效果:
<<ul>主要块:
DECLARE
sql TEXT;
schema_cursor CURSOR FOR
SELECT SCHEMA_NAME
FROM D_DATAVAULT.INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME NOT IN ('PUBLIC', 'INFORMATION_SCHEMA');
BEGIN
FOR record IN schema_cursor DO
sql := REPLACE('CREATE SCHEMA TARGET.<schema> CLONE D_DATAVAULT.<schema>'
, '<schema>', record.schema_name);
EXECUTE IMMEDIATE :sql;
END FOR;
END;
输入:
CREATE OR REPLACE DATABASE D_DATAVAULT;
CREATE SCHEMA SCH_A;
CREATE SCHEMA SCH_B;
CREATE SCHEMA SCH_C;
CREATE DATABASE TARGET;
-- no user defined schemas
输出:
SHOW SCHEMAS IN DATABASE TARGET;
-- INFORMATION_SCHEMA
-- PUBLIC
-- SCH_A
-- SCH_B
-- SCH_C