我如何找到视图的创建方式?
how do I find how a view was created?
如何找出在 oracle sql 中创建视图所用的文本,尤其是如何找出可能隐藏了哪些列?
select view_name, text from all_views where viewname = 'XYZ';
只会给我前几个字
sql 开发人员为此提供了一个选项卡,我只是想知道是否有办法从 sqlplus.
中的命令行执行此操作
默认情况下SQL*Plus 仅显示 long 和 clob 列的前 80 个字符。你可以做 set long 32767
(或其他一些大数字;30000 似乎很常见,我 认为 来自旧版本的限制是 32K 并且更容易输入,但是它现在是 2M)并重新发出您的查询。
您还可以使用 the dbms_metadata
package 获取视图 DDL,如果它是您的视图(在您的架构中)或者您具有 select catalog
角色。
select dbms_metadata.get_ddl('VIEW', 'XYZ')
您还需要执行 set long
以显示有用的输出量;并使用第三个参数指定架构(如果它不在您的架构中)。
如何找出在 oracle sql 中创建视图所用的文本,尤其是如何找出可能隐藏了哪些列?
select view_name, text from all_views where viewname = 'XYZ';
只会给我前几个字
sql 开发人员为此提供了一个选项卡,我只是想知道是否有办法从 sqlplus.
中的命令行执行此操作默认情况下SQL*Plus 仅显示 long 和 clob 列的前 80 个字符。你可以做 set long 32767
(或其他一些大数字;30000 似乎很常见,我 认为 来自旧版本的限制是 32K 并且更容易输入,但是它现在是 2M)并重新发出您的查询。
您还可以使用 the dbms_metadata
package 获取视图 DDL,如果它是您的视图(在您的架构中)或者您具有 select catalog
角色。
select dbms_metadata.get_ddl('VIEW', 'XYZ')
您还需要执行 set long
以显示有用的输出量;并使用第三个参数指定架构(如果它不在您的架构中)。