我有一个过程配置Oracle名称解析
shema_name.package_name.procedure_name
使用数据库软件编写调用它像:
call package_name.procedure_name;
如何配置登录软件使用访问数据库,以便名称解析正确执行?请注意,登录访问数据库和过程定义器是不同的。
我有一个过程配置Oracle名称解析
shema_name.package_name.procedure_name
使用数据库软件编写调用它像:
call package_name.procedure_name;
如何配置登录软件使用访问数据库,以便名称解析正确执行?请注意,登录访问数据库和过程定义器是不同的。
你有2种选择:
创建同义词程序包为schema_name.package_name
ALTER SESSION设置CURRENT_SCHEMA = SCHEMA_NAME
将所有引用的对象公开为同义词,如下所示。
或者,如果只有一个模式引用它们,并且您不想污染公共名称空间 - 仅在该模式中生成同义词。
我会避免公共同义词在可能的情况。 –
我也是。这就是我写第二行的原因。但是如果他有三百个不同的用户使用这个模式 - 可能会创建一组公共同义词将是一个更好的主意,然后是300个副本。至于'set current_schema'方法 - 这意味着你应该有权访问有问题的软件源代码,我觉得他没有。 –
不确定,但基于应用程序名称的登录触发器可能会执行“更改会话” –
第二个选项会阻止我以通常的方式使用以前的current_schema表吗? – Basilevs