小编the*_*jxc的帖子

DBD :: Oracle如何在连接之前设置v $ session.program

我必须使用DBD :: Oracle连接到具有LOGON触发器的Oracle数据库,该触发器在登录时验证我的v $ session.program.

我试过了:

use strict;
use warnings;

use DBI;

DBI->connect ('dbi:Oracle:host=<ip>;sid=<sid>', 'test', 'TEST', 
    { ora_module_name => 'My Program'}) || die DBI::errstr;
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为DBD :: Oracle直到连接后才设置v $ session.program.

但是,JDBC确实支持在连接之前进行设置,方法是:

Properties props = new Properties();
props.setProperty("user", username);
props.setProperty("password", password);
props.put("v$session.program", "My Program");
Class driver = Class.forName(driverClass);
Run Code Online (Sandbox Code Playgroud)

但我不是在使用Java.我正在使用Perl.有什么建议?!

[UPDATE]

在进程上运行"strace"确定DBD :: Oracle模块正在执行以下操作:

open("/ proc/self/cmdline",O_RDONLY)= 4 read(4,"perl\0test.pl\0",255)= 13

所以,是的,我理论上可以创建一个名为"我的程序"的脚本(或软链接),并将其用作命令行来运行我的文件.但是在"非常伤心且根本不好"的规模上,这个比率相当高.:(

java oracle perl session

8
推荐指数
1
解决办法
1664
查看次数

从Perl XS代码,我如何递归调用自己?

我在Pure Perl中有一个复杂的编码功能,我正在转换为XS,希望获得性能提升.

我转换为XS的函数需要以递归方式调用自身.我可以看到如何使用call_sv [感谢"man perlcall"]来调用Pure Perl函数.

但是我如何在XS中称自己(或任何其他XS功能)呢?

(PS效率非常理想...)

有人可以给我一个提示吗?还是一个例子?PPP-请!

更新:第一个答案是绝对正确的.调用递归纯C函数可以正常工作.

perl xs

7
推荐指数
1
解决办法
268
查看次数

标签 统计

perl ×2

java ×1

oracle ×1

session ×1

xs ×1