Weblogic JDBC Connections:多语句init SQL

时间:2014-09-24 11:19:35

标签: jdbc weblogic datasource

在WLS中设置数据源时,我们可以为它提供一个 init SQL 语句,该语句在创建此数据源的每个连接后立即执行。

到目前为止,我们正在使用..

SQL ALTER SESSION SET current_schema=user01

..因为我们使用权限少于所有者user02的应用user01登录,但我们仍希望数据源能够看到架构。

现在我们要将一些会话元信息添加到DS连接,以便在数据库端进行调试。陈述..

DBMS_APPLICATION_INFO.set_client_info('bar');
DBMS_APPLICATION_INFO.set_module('qux', 'garp');

..允许您将自定义字符串设置为标识符,然后以V_$SESSION的列显示,从而为DBA提供有关数据库连接的更多信息。

我的问题
如何使用多行init SQL语句?请注意,init SQL语法需要一个SQL命令,该命令前面有SQL,并且不以分号;结尾。


编辑:
到目前为止我尝试过的是......

begin
execute immediate 'ALTER SESSION SET current_schema=uzms01';
DBMS_APPLICATION_INFO.set_client_info('bar');
DBMS_APPLICATION_INFO.set_module('qux', 'garp');
end;

..但我一直收到错误。 :(

1 个答案:

答案 0 :(得分:1)

看起来有一个小的语法不规则,我没有发现,因为SQL开发人员没有问题地执行它...

以下代码段有用(请注意immediate之后的括号):

SQL BEGIN
execute immediate('alter session set current_schema=user01');
DBMS_APPLICATION_INFO.set_client_info('my client');
DBMS_APPLICATION_INFO.set_module('my module', 'my action');
END;