oracle - Oracle中如何排除和查找RecycleBin的值
问题描述
在 Oracle 11g 中查询约束时,执行以下查询。
SELECT
CC.OWNER as "owner"
, CC.TABLE_NAME as "tableName"
, CC.COLUMN_NAME as "columnName"
, CC.CONSTRAINT_NAME as "constraintName"
, CC.POSITION as "position"
FROM ALL_CONS_COLUMNS CC
WHERE CC.OWNER IN ('<schemaName>')
ORDER BY CC.POSITION ASC;
但是,recyclebin 中的数据也会被搜索,如下所示。(供参考,下图中的所有者为模式名 Docker。)
我在 Mac OS Docker 上运行。是不是因为是 Docker 环境才出现?
我根本不需要这些数据,所以我想检查一下。
除了使用purge recyclebin命令清除 recyclebin中的数据之外,还有什么方法?
解决方案
您可能会使用ALL_TABLES不会返回已删除的表这一事实,因此简单的内部连接 将进行消除:OWNER, TABLE_NAME
SELECT
CC.OWNER as "owner"
, CC.TABLE_NAME as "tableName"
, CC.COLUMN_NAME as "columnName"
, CC.CONSTRAINT_NAME as "constraintName"
, CC.POSITION as "position"
FROM ALL_CONS_COLUMNS CC
JOIN ALL_TABLES T on T.OWNER = CC.OWNER and T.TABLE_NAME = CC.TABLE_NAME /* Added line */
WHERE CC.OWNER IN ('REPORTER')
ORDER BY CC.POSITION ASC;
推荐阅读
- azure - 用于 MongoDB 迁移的 Delta Lake Gen2
- css - 如何阻止 WebKit 递归减小字体大小?
- javascript - React native Algolia Search undefined is not an object
- qt - QML 中的堆栈布局
- javascript - CSS - 如何在背景图像上呈现按钮?
- reactjs - 使用 RequireJS 反应组件
- python - 谷歌云存储 python 客户端 AttributeError: 'ClientOptions' object has no attribute 'scopes' 在部署后发生
- android - Xamarin Webview - 调用文件选择器对话框
- azure - 将本地 Jenkins 设置与 Azure Dev OPS 集成
- python-2.7 - python 2.7上的tox测试-> ImportError:无法导入名称ThreadingTCPServer