如何遍历表中的每个语句并逐个执行

我创建了一个 LUA 脚本,创建了一个名为 'roles' 的变量,该变量运行 SQL 查询以获取一个包含大量 SQL 语句的表。我有一个循环,遍历每个语句并每次执行它们,但是我遇到了错误,表示我的 'roles' 变量设置为布尔值。我已经尝试手动将此变量设置为 'table',但这并没有解决我的问题。

代码:

CREATE OR REPLACE LUA SCRIPT "GRANT_RT_MIBI_SUPPORT_ROLE_TO_SCHEMA" () RETURNS ROWCOUNT AS

--创建 Variable ROLES,它存储在运行时将分配给模式的所有角色。
roles = pquery([[SELECT
    'GRANT CREATE SESSION TO RT_MIBI_SUPPORT;'  AS ROLES_TO_GRANT
UNION ALL
SELECT
    'GRANT SELECT ON ' || OBJECT_NAME || ' TO RT_MIBI_SUPPORT;'  AS ROLES_TO_GRANT
FROM
    SYS.EXA_DBA_OBJECTS
WHERE
    OBJECT_NAME LIKE 'RT_MIBI%' AND OBJECT_TYPE = 'SCHEMA';]])

--遍历每个角色,直到执行所有角色为止。
for i = 1, #roles, 1 do
    print(roles)
    i = i + 1
print(roles)
end
/

任何帮助将不胜感激 :)

点赞