我正在尝试重新创建在本地开发服务器上的IBM iSeries中型服务器下运行的部分登台和生产服务器。我的计划是允许SQL查询与安装在Linux上的DB2 Express C无缝协作。我已经安装了PHP,ibm_db2 PHP扩展和DB2 Express C.一切正常。
我的下一步是弄清楚如何在不指定架构的情况下运行不合格的SQL语句。例如,在IBM iSeries上,我可以使用所有模式指定i5_libl选项,然后我不必担心使用完全限定的SQL。但我正在使用Linux,因此i5_libl选项不可用。
我查看了SET PATH
的DB2 SQL文档,这就是我想要指定多个模式的地方,但我的理解是它只适用于CREATE
,而不是静态和动态SQL。真的是我关心的一切。我还查看了SET SCHEMA
和SET CURRENT PACKAGESET
,但这些似乎只允许一个架构。
例如:
我会有表SCHEMA1.ABC
和SCHEMA2.DEF
。
我想设置它,以便我可以从我的应用程序中运行以下命令:
SELECT * FROM ABC
SELECT * FROM DEF
答案 0 :(得分:3)
执行此操作的唯一方法是为相关表定义公共别名(同义词)。
CREATE PUBLIC ALIAS ABC FOR SCHEMA1.ABC
CREATE PUBLIC ALIAS DEF FOR SCHEMA2.ABC
CURRENT PATH
注册只会影响对例程的搜索,而且,正如您所注意到的,一次只能有一个CURRENT SCHEMA
。
话虽如此,在DB2 LUW上开发iSeries上托管的应用程序的价值是值得怀疑的,因为这两个平台之间的差异远远超出了它们支持的SQL方言。
答案 1 :(得分:1)
我同意@mustaccio - 在Linux机器上重建类似IBM i的环境将会有很多工作。您最好只在IBM i机器上创建开发环境。完全基于帖子中的命名法,听起来似乎已经有了变更管理;只需向管理员询问开发环境。
假设您已经走了这条路并且出于某种原因这是不可行的,如果您真的想在Linux上使用开发环境,请将所有表放在一个模式中。如果模式中存在重复的名称,则需要使用别名。
答案 2 :(得分:1)
Scott Forstie今天早上提到了你在Linux推特上安装的DB2 Express C.
PHP ibm_db2(测试新功能): IBM目前正在测试一些新的开源PHP ibm_db2技术允许Linux上的DB2 Connect V10.5进行许多/大多数IBM i设置。如果您有兴趣,请参阅以下网站http://youngiprofessionals.com/wiki/index.php/XMLSERVICE/PHP,下载PHP ibm_db2新功能部分(仅测试),下载测试ibm_db2.zip文件。要编译到Linux机器PHP,请参阅README_IBM_i zip文件,名为“linux for IBM i people”的部分。
DB2 Connect V10.5(带有DB2 for i功能): DB2 Connect V10.5是需要购买的许可程序产品。对于生产用途,DB2 Connect Unlimited Edition for System i打包通常为IBM i客户提供最佳条款。请联系您当地的IBM代表或业务合作伙伴以获取价格信息有关此产品的详细信息,请访问以下Web站点:http://www-03.ibm.com/software/products/en/db2connunlieditforsysti。可以通过发送电子邮件至rmahendr@us.ibm.com获取用于评估目的的试用DB2 Connect许可证文件