请问下,flinksql操作Oracle是必须使用sid吗?servicename是不行的是吗
在 Flink SQL 中操作 Oracle 数据库时,必须使用 SID(Service Identification Number)而不是服务名称。SID 是 Oracle 数据库实例的唯一标识符,用于区分不同的数据库实例。
以下是使用 Flink SQL 操作 Oracle 数据库的示例代码:
-- 建立连接
CONNECTION.DATASOURCE = 'jdbc:oracle:thin:@//localhost:1521/ORCL';
CONNECTION.USER = 'username';
CONNECTION.PASSWORD = 'password';
-- 定义表结构
CREATE TABLE my_table (
id INT,
name VARCHAR2(50),
age INT
) WITH (
'connector'.'format' = 'org.apache.flink.table.data.OracleTableFormat',
'connector.version'='1.2',
'connector.table.name'='my_table',
'connector.credentials.kerberos.sid' = 'ORCL', // 必须使用 SID
'connector.credentials.kerberos.servicename' = NULL // 可以为空
);
-- 插入数据
INSERT INTO my_table VALUES (1, 'Alice', 25);
INSERT INTO my_table VALUES (2, 'Bob', 30);
INSERT INTO my_table VALUES (3, 'Charlie', 35);
-- 查询数据
SELECT * FROM my_table;
-- 关闭连接
DISCONNECT;
在上面的示例代码中,我们使用了 CONNECTION.CREDENTIALS
属性来指定连接参数。其中,kerberos.sid
属性必须设置为 Oracle 数据库实例的 SID,而 kerberos.servicename
属性可以为空。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。