Below is the module in sybase.
sub execute_query{
$connect = "isql -S $SERVER-U $USER -P $PASS -D $DBNAME";
$pid = open2(\*Rder, \*Wrter, "$connect");
Writer->autoflush();
print Write qq!
set transaction isolation level 0
go
Select * from remtrench
go
!;
Wrter->close();
while(<Rder>)
{
Parse data
}
上面的代码在下面进行了更改以支持oracle。 我能够连接到oracle.But选择数据库查询和其他查询比连接不起作用。请指导我
sub execute_query{
$connect = "sqlplus $USER/PASS@SERVER
$pid = open2(\*Rder, \*Wrter, "$connect");
Writer->autoflush();
alter session set current_schema = $DBNAME;
Select * from remtrench;
Writer->close();
....
}
我的上述更改不适用于alter session其他查询(选择)。搜索如何执行多个查询。但这对我没有帮助。 感谢。
答案 0 :(得分:2)
第二行是否缺少右引号?
或者,为什么要使用他们的命令行程序与数据库交互?您应该使用类似DBI或DBIx :: Class。
答案 1 :(得分:0)
ALTER SESSION在该会话中有效,但如果为每个sql命令打开更多会话则不会。
您可以简单地在查询中为数据库对象添加前缀以绕过此要求,例如通过引用这样的表:
SELECT * FROM USER.TABLE