Weblogic JDBC连接:多语句初始化SQL

Weblogic JDBC连接:多语句初始化SQL,jdbc,weblogic,datasource,Jdbc,Weblogic,Datasource,在WLS中设置数据源时,我们可以给它一个init SQL语句,该语句在为此数据源创建每个连接后立即执行 到目前为止,我们正在使用 SQL ALTER SESSION SET current_schema=user01 。。当我们使用一个应用程序user02登录时,它的权限比所有者user01的权限小,但我们仍然希望数据源看到模式 现在我们想向DS连接添加一些会话元信息,以便在DB端进行调试。声明 DBMS_APPLICATION_INFO.set_client_info('bar'); DBM

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

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

SQL ALTER SESSION SET current_schema=user01
。。当我们使用一个应用程序
user02
登录时,它的权限比所有者
user01
的权限小,但我们仍然希望数据源看到模式

现在我们想向DS连接添加一些会话元信息,以便在DB端进行调试。声明

DBMS_APPLICATION_INFO.set_client_info('bar');
DBMS_APPLICATION_INFO.set_module('qux', 'garp');
。。允许您将自定义字符串设置为标识符,然后将显示在
V_$SESSION
的列中,从而为DBA提供有关DB连接的更多信息

我的问题
怎么可能有多行init SQL语句?请注意,init SQL语法需要一个SQL命令,该命令前面有
SQL
,并且不以分号
结尾


编辑:
到目前为止,我所做的尝试与


。。但我总是出错(

看起来有一个小的语法异常,我没有发现,因为SQL developer执行它时没有问题

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


为了设置当前(或者可能),您应该使用JDBC提供的方法,否则连接可能处于无效状态。我不确定为什么会话模式会这样设置,但这是我不允许更改的。
begin
execute immediate 'ALTER SESSION SET current_schema=uzms01';
DBMS_APPLICATION_INFO.set_client_info('bar');
DBMS_APPLICATION_INFO.set_module('qux', 'garp');
end;
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;