作者

InterSystems中国
文章 Claire Zheng · 三月 23 4m read

通过 JDBC 使用 SQL 创建外来表

大家好。好久不见。我想再次与大家分享我最近学习的内容 通过 JDBC 使用 SQL 创建外来表。

因为我同时也在学习 IRIS BI,所以我从这个 Sample-BI docker 环境开始。

https://github.com/intersystems/Samples-BI

启动环境后,以超级用户身份登录管理门户http://localhost:52773/csp/sys/UtilHome.csp。

将命名空间切换为IRISAPP

 

我们会发现所有样本数据都存储在IRISAPP 命名空间中。让我们找一张简单的表来测试外来表功能 🤣

System Explorer > SQL

 

让我们通过在 "执行查询(Execute Query tab) "选项卡中执行以下 SQL 查询来试试表HoleFoods.Outlet

SELECT
ID, City, Country, Latitude, Longitude, Population, Type
FROM HoleFoods.Outlet

 

太棒了!!😉 表中有 35 个条目。让我们使用它。

 


步骤 1 - 设置 JDBC 连接

通过学习下面的文档,InterSystems IRIS db 可以通过以下方式与 JDBC 连接

将 SQL Gateway 用作 JDBC 数据源

因此,让我们使用命名空间IRISAPP作为测试的 JDBC 源数据库,并为其建立连接。

通过System  > Configuration  > SQL Gateway Connections 添加新连接

 

输入以下内容

   
Connection name** ** testjdbc
User superuser
Password {you own password}
Driver name com.intersystems.jdbc.IRISDriver
URL** ** jdbc:IRIS://127.0.0.1:1972/IRISAPP

在这种情况下,"类 "路径(Class path)留空,因为正在连接 InterSystems IRIS DB。如果连接到第三方数据库,请记住下载 JDBC 驱动程序文件(.jar),并在类路径文件中指定驱动器路径。

 

保存 测试连接(****Test Connection)连接成功 应在意料之中。

耶!!我们完成了第一步。

 


第 2 步 - 创建外来表

现在切换到另一个命名空间USER,其中不包含表HoleFoods.Outlet

在这里,我们要利用外来表的功能来查询外部表HoleFoods.Outlet 。(在 InterSystems IRIS 中,可以配置不同的命名空间来指向不同的数据库。在本例中,名称空间IRISAPP和名称空间USER指向不同的数据库。因此,我们无法从名称空间USER 直接查询表名称空间IRISAPP。)

 

通过学习下面的文档,我们可以直接用 SQL 创建外来表。

外来表

让我们再次进入 SQL 执行页面。System Explorer > SQL

 

1.定义外来服务器

testjdbc是上一步在 SQL Gateway JDBC 连接中定义的名称。

CREATE FOREIGN SERVER Sample.testDB FOREIGN DATA WRAPPER JDBC CONNECTION 'testjdbc'

 

2. 定义外来表

现在我们要定义一个外来表demo.outlet,通过 JDBC 网关指向表HoleFoods.Outlet

CREATE FOREIGN TABLE demo.outlet SERVER Sample.testDB TABLE 'HoleFoods.Outlet'

让我们查看表列表中的结果

Yeah!!!! 创建了一个外来表demo.outlet 。模式已自动读取并创建😂开心开心。


最后,运行以下 SQL 来测试外来表

SELECT * FROM demo.outlet

 

 

退回 35 个Outlet,我们成功了我们成功了。


仅供参考

删除外来表demo.outlet

DROP FOREIGN TABLE demo.outlet

 

放弃外来服务器Sample.testDB

DROP FOREIGN SERVER Sample.testDB CASCADE

这就是我要分享的全部内容!!!感谢您的阅读😘