Oracle tương đương cho information_schema.COLUMNS
là USER_TAB_COLS
đối với các bảng do người dùng hiện tại sở hữu, ALL_TAB_COLS
hoặc DBA_TAB_COLS
cho các bảng do tất cả người dùng sở hữu.
Vùng bảng không tương đương với một lược đồ, bạn cũng không cần phải cung cấp tên vùng bảng.
Việc cung cấp lược đồ / tên người dùng sẽ có ích nếu bạn muốn truy vấn ALL_TAB_COLS
hoặc DBA_TAB_COLS
cho các cột OF bảng do một người dùng cụ thể sở hữu. trong trường hợp của bạn, tôi tưởng tượng truy vấn sẽ giống như sau:
String sqlStr= "
SELECT column_name
FROM all_tab_cols
WHERE table_name = 'USERS'
AND owner = '" +_db+ "'
AND column_name NOT IN ( 'PASSWORD', 'VERSION', 'ID' )"
Lưu ý rằng với cách tiếp cận này, bạn có nguy cơ bị chèn SQL.
CHỈNH SỬA: Viết hoa tên bảng và cột vì chúng thường là chữ hoa trong Oracle; chúng chỉ là chữ thường hoặc chữ hoa hỗn hợp nếu được tạo với dấu ngoặc kép xung quanh chúng.