sql >> データベース >  >> RDS >> Oracle

列名をフェッチするOracleクエリ

    information_schema.COLUMNSに相当するOracle USER_TAB_COLSです 現在のユーザーが所有するテーブルの場合、ALL_TAB_COLS またはDBA_TAB_COLS すべてのユーザーが所有するテーブルの場合。

    表スペースはスキーマと同等ではありません。また、表スペース名を指定する必要もありません。

    ALL_TAB_COLSをクエリする場合は、スキーマ/ユーザー名を指定すると便利です。 またはDBA_TAB_COLS 特定のユーザーが所有するテーブルの列の場合。あなたの場合、クエリは次のようになります。

    String sqlStr= "
    SELECT column_name
      FROM all_tab_cols
     WHERE table_name = 'USERS'
       AND owner = '" +_db+ "'
       AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
    

    このアプローチでは、SQLインジェクションのリスクがあることに注意してください。

    編集: Oracleでは通常大文字であるため、テーブル名と列名は大文字になります。二重引用符で囲んで作成した場合にのみ、小文字または大文字と小文字が混在します。



    1. テーブルユーザーのインデックスの解決が壊れています。それを修理してみてください

    2. SQL Serverの挿入、更新、選択の最速の方法

    3. World Backup Day:データベースをいつどのようにバックアップする必要がありますか?

    4. 階層的に定義されたデータセットのフラット化されたテーブル/ビューの作成