You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PL/SQL如何查看当前schema及修改默认schema,附代码报错修复需求

报错根因
  • Oracle PL/SQL 块内不支持直接运行DDL语句,ALTER SESSION属于DDL类型,必须通过动态SQL语法执行
  • 代码中"PRODUCTION"错误使用了双引号,Oracle规定字符串字面量需用单引号包裹,双引号仅用于标记大小写敏感的对象名
修复后完整代码
DECLARE
  v_current_schema varchar2(30);
BEGIN
  v_current_schema := SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA');
  IF v_current_schema <> 'PRODUCTION' THEN
    -- 通过动态SQL执行ALTER语句
    EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA = PRODUCTION';
  END IF;
END;
/
注意事项
  • 执行该代码的用户需要提前授予ALTER SESSION系统权限,以及PRODUCTION schema下对应对象的访问权限
  • 如果你创建PRODUCTION schema时明确指定了大小写敏感(创建时加了双引号),可以将动态SQL调整为EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA = "PRODUCTION"',外层用单引号包裹整条SQL,内层双引号标记大小写敏感的schema名即可

内容的提问来源于stack exchange,提问作者Murat DİRİM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 12:57:03