当前位置: 代码迷 >> PB >> 初学者,pb同时连接oracle和sqlserver
  详细解决方案

初学者,pb同时连接oracle和sqlserver

热度:105   发布时间:2016-04-29 08:58:33.0
菜鸟求助,pb同时连接oracle和sqlserver
我的程序是pb+sqlserver的,但是要从一个oracle库的表里取值供程序使用
我用了两个事务对象:sqlca连接sqlserver,sale_trans连接oracle
我的问题有两个:
1如何在语句中指定oracle表所属的数据库和用户名(类似于sqlserver的DatabaseName.dbo.TableName这种)
2如何写内嵌的oracle查询语句(类似于sqlserver的select ColumnName into :VarName from TableName)

------解决方案--------------------
1.指定SQL操作对象时使用using 事务对象名称,默认using sqlca
2.pb中的嵌入式SQL本来就不是面向具体DBMS的,oracle 的语句应该和 sqlserver 写法是一样
------解决方案--------------------
1、oracle中数据库和用户名是等同的,不像sqlserver,数据库库下还可以有不同的用户。sale_trans连接上oracle后,不用指定语句中表所属的数据库和用户名,除非你用A用户登录,需要访问B用户的表BTABLE,就需要指定,如SELECT * FROM B.BTABLE 
2、用select ColumnName into :VarName from TableName using sale_trans 即可;
------解决方案--------------------
针对你的情况 你操作Oracle数据库的时候的sqlect语句需要指定事务名
如:select ColumnName into :VarName from TableName using sale_trans;

一般来说这样是没问题了
前提是你程序连接Oracle数据库的时候的用户名必须是它创建表时候的用户名
如果两个用户名不一样那你就必须在表前指定用户名
如:select ColumnName into :VarName from username.TableName using sale_trans;

------解决方案--------------------
1.指定事务table owner属性!
  相关解决方案