Oracle에서 보기를 만드는 데 사용되는 SQL을 검색하는 방법은 무엇입니까?
Oracle에서 Function, Package 등을 생성하는 데 사용되는 SQL을 검색하기 위해 user_source 뷰를 쿼리할 수 있습니다.그러나 보기는 이 보기에 포함되지 않으며 기본 보기에도 존재하지 않습니다.sys.source$
보기 텍스트에 액세스하려면user_views.text
열을 사용할 수 있지만 Oracle이 쿼리의 일부를 다시 쓰기 때문에 정확하지 않습니다(예: 전역 확장).
글로벌 확장 없이 입력한 대로 뷰를 만드는 데 사용되는 SQL을 검색하려면 어떻게 해야 합니까?
다음 쿼리를 사용할 수 있습니다.
SELECT VIEW_NAME, TEXT
FROM USER_VIEWS;
또는 ALL_VIEWs를 사용할 수 있습니다.
SELECT VIEW_NAME, TEXT
FROM ALL_VIEWS;
참조:
Oracle® 데이터베이스 참조에 대한 ALL_VIEW
다음과 같이 dbms_metadata.get_ddl을 사용합니다.
select
dbms_metadata.get_ddl('VIEW', 'VIEW_NAME', 'VIEW_OWNER')
from
dual;
매개 변수는 다음과 같습니다.
DBMS_METADATA.GET_DDL (
object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform IN VARCHAR2 DEFAULT 'DDL')
RETURN CLOB;
공용 동의어가 있습니다.사용자가 소유하지 않은 개체의 경우 시스템 권한인 SELECT_CATALOG_ROLE을 얻을 수 있으며 모든 개체에 대한 모든 DDL을 볼 수 있습니다.
Oracle SQL Developer에서는 쿼리 결과 창에서 clob을 볼 수 있습니다(많은 사람들이 clob 변환 유틸리티도 만들었습니다).
DBMS_METadata는 Oracle 데이터베이스 기능을 시드하지만 대부분의 SQL IDE 툴에는 일부 DDL 보기 메커니즘이 있습니다(고급 고가의 툴이 필요하지 않음).
개발자로서 뷰의 관심사는 유효하고 실행 가능하게 만드는 "선택"이라고 생각합니다. 뷰를 편집하는 가장 쉬운 방법은 pl/sql Developer나 Toad와 같은 다른 애플리케이션을 사용하는 것입니다.
sqlplus와 같은 텍스트 편집기로만 Oracle 데이터베이스의 개체를 편집할 수 있습니다.exe는 간단한 작업에 오랜 시간이 걸리고, 그렇게 하는 것은 골치 아픈 방법입니다.
원본 텍스트가 손실된 것 같습니다.
create table t1(id number)
/
create view t1_vw as select * from t1
/
alter table t1 add val varchar2(20)
/
alter view t1_vw compile
/
select * from t1_vw
/
ID 열만 반환합니다.흥미롭지만 구체화된 보기의 경우 원본 텍스트가 보존됩니다.
데이터 사전 보기(V$SQL, V$SQLTEXT)를 사용하여 입력한 실제 SQL을 볼 수 있습니다.
언급URL : https://stackoverflow.com/questions/23292159/how-to-retrieve-the-sql-used-to-create-a-view-in-oracle
'programing' 카테고리의 다른 글
%in%의 반대: 벡터에 지정된 값이 있는 행 제외 (0) | 2023.06.15 |
---|---|
ASP.NET 마이그레이션 '복합 기본 키 오류' 추가 유창한 API 사용 방법 (0) | 2023.06.15 |
원격 호스트가 연결을 닫았습니다.오류 코드는 0x800704입니다.CD (0) | 2023.06.15 |
두 테이블을 비교하고 경기를 건너뛰는 방법은 무엇입니까? (0) | 2023.06.15 |
Python - Excel 파일의 열 너비를 자동으로 조정합니다. (0) | 2023.06.15 |