我相信这个问题可以通过朝着正确的方向推动来解决......我通过删除引用名为 FMS_PURPOSES
的表的列之一 (PURPOSE_ID
) 来更改名为 FMS_BYLAWS
的表。相反,我创建了一个名为 PURPOSE_IDS(VARCHAR2(1000))
的新列。这将是将在应用程序中处理的 ID 集合。我有一个名为 IMS_REQUEST_LIST
的视图现在有错误,因为我删除了此列并替换了它。
我需要知道如何更改视图以使其重新启动并运行。或者我需要一种方法来查看创建视图的原始语句,以便我可以获取并更改它。如果需要任何其他信息,请向我索取,我将尽我所能提供!下面是用于获取文本的选择语句...我不完全明白:
SQL> SELECT text FROM ALL_VIEWS WHERE VIEW_NAME = 'IMS_REQUEST_LIST';
TEXT
--------------------------------------------------------------------------------
SELECT r.id AS request_id,
r.issue_id AS issue_id,
您可以在user_errors
视图中看到它出错的原因,或者alter view ims_request_list compile
后跟 show_errors
。据推测,它指的是掉落的列;否则,它将被该删除无效,但在下次引用时重新编译。该自动重新编译失败,因为它现在存在语法错误。
all_views.text
列为 LONG。默认情况下,SQL*Plus 仅显示 LONG、CLOB 和 XMLType 列的前 80 个字符。您可以执行set long 32767
(或任何大数字)以查看全文。
还可以使用 dbms_metadata.get_ddl
函数获取完整的 create view
语句。您也需要set long
才能看到所有这些,因为它返回 CLOB。
查询结果被截断。文本是长列。在 sqlplus 问题中
设置长4000;
在运行查询以获取 4000 个字符的文本之前。