通过Oracle系统表获取表主键

场景:需要将Oracle的数据抽取至kudu中,首先需要在kudu中对应建立与Oracle数据库对应的表。

使用kettle工具设计任务。

  1. 在表输入组件中,连接Oracle数据库后,SQL语句结尾处不加“;”,否则执行语句时报错。
  2. 查询Oracle主键的SQL语句

SELECT  col.column_name
from
 all_constraints con,all_cons_columns col
where
 con.constraint_name=col.constraint_name and con.constraint_type='P'
and col.table_name='TABLE_NAME' and col.owner='DB_NAME' AND con.owner=' DB_NAME'

其中,all_constraints和all_cons_columns表是Oracle的系统表,其中all_cons_columns表中字段包含表用户、表名和主键名称。all_constraints包含表的用户、约束名、约束名称等。
值得注意的是user_constraints和user_cons_columns表示当前用户的信息,all_constraints和all_cons_columns表示的是所有用户的表信息。
如果只是查询当前用户的表主键信息,SQL语句可以简化为:
Select  col.column_name
from
 all_constraints con,all_cons_columns col
where
 con.constraint_name=col.constraint_name and con.constraint_type='P'
 and col.table_name='TABLE_NAME'
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大宇进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值