View oracle视图系统所有选项卡列

View oracle视图系统所有选项卡列,view,oracle10g,etl,View,Oracle10g,Etl,阿罗哈 我的目的是:我需要收集一些关于我的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"

阿罗哈

我的目的是:我需要收集一些关于我的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”。我尝试了一个alterview-BRINDAVOINE.FME_SCHEMA_SIGE编译,但它似乎没有改变

我的问题是:从sys.view创建视图可以吗?如果是这样,为什么我不能创建此视图


提前感谢,

您应该能够创建查询系统视图的视图。我可以通过删除对A_DESIGN_REIMS.APICD_COMPOSANT的引用来编译您的视图(当然在我的数据库中不存在)

通过使用SQLPlus命令“show errors”(在创建视图之后立即)或通过查询“user\u errors”或“all\u errors”视图来检查错误。我猜BRINDAVOINE用户缺少必要的特权