アロハ
私の目的は次のとおりです。OracleDB に関するいくつかの重要な情報をビューに収集する必要があります。何をすべきか ?これを ETL でスキーマ リソースとして使用するには、クエリを実行して、翻訳して認証するデータを修飾することができます。
SYS としてログインしていません。だから、ここに私の見解があります:
CREATE OR REPLACE FORCE VIEW "BRINDAVOINE".FME_SCHEMA_SIGE
AS
SELECT S.TABLE_NAME AS "feature_type",
S.COLUMN_NAME AS "attribute_name",
CASE S.DATA_TYPE
WHEN 'BLOB'
THEN
'fme_buffer'
WHEN 'CHAR'
THEN
CASE
WHEN S.DATA_LENGTH IS NULL THEN 'fme_char(400)'
ELSE 'fme_char(' || S.DATA_LENGTH || ')'
END
WHEN 'DATE'
THEN
'fme_date'
WHEN 'NUMBER'
THEN
CASE
WHEN S.DATA_LENGTH IS NULL
THEN
'fme_decimal(400,'
ELSE
'fme_decimal('
|| S.DATA_LENGTH
|| ','
|| CASE
WHEN S.DATA_PRECISION IS NULL THEN '2)'
ELSE S.DATA_PRECISION || ')'
END
END
WHEN 'VARCHAR2'
THEN
CASE
WHEN S.DATA_LENGTH IS NULL THEN 'fme_char(400)'
ELSE 'fme_char(' || S.DATA_LENGTH || ')'
END
WHEN 'NVARCHAR2'
THEN
CASE
WHEN S.DATA_LENGTH IS NULL THEN 'fme_char(400)'
ELSE 'fme_char(' || S.DATA_LENGTH || ')'
END
ELSE
S.DATA_TYPE
END
AS "attribute_data_type",
'' AS "geometry_type"
FROM SYS.ALL_TAB_COLUMNS S
WHERE S.OWNER = 'A_REIMS'
AND S.TABLE_NAME NOT LIKE '%RELATION'
AND S.TABLE_NAME IN (SELECT NOM
FROM A_DESIGN_REIMS.APICD_COMPOSANT
WHERE NUMERO_MODELE = 1 AND action != 2)
AND NOT REGEXP_LIKE(S.COLUMN_NAME,
'(APIC_.*)|_([STXYLO]|S[GT]|[XY][12])$');
残念ながら、クエリを実行しようとすると、「ORA-04063: view "BRINDAVOINE.FME_SCHEMA_SIGE" comporte des erreurs」というエラー メッセージが表示されます。ALTER VIEW BRINGAVOINE.FME_SCHEMA_SIGE COMPILE を試しましたが、変わらないようです。
ここに私の質問があります: sys."view" からビューを作成してもよろしいですか? もしそうなら、なぜ私はこのビューを作成できなかったのですか?
前もって感謝します、