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では通常大文字であるため、テーブル名と列名は大文字になります。二重引用符で囲んで作成した場合にのみ、小文字または大文字と小文字が混在します。