将sql查询转换为oracle查询

i34xakig  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(406)

我有一个sql查询需要为oracle编写,你能帮我吗?

SELECT key_column_usage.column_name
                FROM   information_schema.key_column_usage
                WHERE  table_schema = SCHEMA()     
                AND    constraint_name = 'PRIMARY' 
                AND    table_name = 'posts'
qgelzfjb

qgelzfjb1#

我不知道你的查询代表了什么,但是-让我试试。看起来您想查询约束表。如果是这样,那么一个选择就是查询 user_cons_columns :

from user_cons_columns c
where c.owner = user
  and c.constraint_name = 'PRIMARY'
  and c.table_name = 'POSTS'

哪里 user 表示当前登录的用户 'PRIMARY' 是该约束的名称 'POSTS' 是表名;在oracle中,默认情况下,表名以大写形式存储
或者,加入 user_constraints 以及 user_cons_columns :

from user_constraints r join user_cons_columns c on c.constraint_name = r.constraint_name
where r.owner = 'SCOTT'
  and r.constraint_type = 'P'
  and r.table_name = 'POSTS'

因为 constraint_type = 'P' 表示主键(如果这是您真正想要的),它存储在 user_constraints .
举个例子,这次我用 'SCOTT' 作为所有者名称。
如果您想要和/或拥有足够的特权 user_ ,可以查询 all_ 或者 dba_ 获取所需信息的视图。所以,那将是例如。 all_cons_columns 等。

相关问题