- (mapcar #'car
- (database-query "select table_name from user_tables"
- database nil nil))
- #+nil
- (values (database-query "select TABLE_NAME from all_catalog
- where owner not in ('PUBLIC','SYSTEM','SYS','WMSYS','EXFSYS','CTXSYS','WKSYS','WK_TEST','MDSYS','DMSYS','OLAPSYS','ORDSYS','XDB')"
- db nil nil)))
-
-
-(defmethod database-list-views ((database oracle-database)
- &key owner)
- ;; (database-query "select table_name from all_catalog" database nil nil)
- (mapcar #'car
- (database-query "select view_name from user_views" database nil nil)))
-
-;; Return a list of all columns in TABLE.
-
-(defmethod list-all-table-columns (table (db oracle-database))
- (declare (type string table))
- (unless db
- (setf db clsql:*default-database*))
- (let* ((sql-stmt (concatenate
- 'simple-string
- "select "
- "'',"
- "all_tables.OWNER,"
- "'',"
- "user_tab_columns.COLUMN_NAME,"
- "user_tab_columns.DATA_TYPE from user_tab_columns,"
- "all_tables where all_tables.table_name = '" table "'"
- " and user_tab_columns.table_name = '" table "'"))
- (preresult (sql sql-stmt :db db :types :auto)))
- ;; PRERESULT is like RESULT except that it has a name instead of
- ;; type codes in the fifth column of each row. To fix this, we
- ;; destructively modify PRERESULT.
- (dolist (preresult-row preresult)
- (setf (fifth preresult-row)
- (if (find (fifth preresult-row)
- #("NUMBER" "DATE")
- :test #'string=)
- 2 ; numeric
- 1))) ; string
- preresult))
+ (let ((query
+ (cond ((null owner)
+ "select table_name from user_tables")
+ ((eq owner :all)
+ "select table_name from all_tables")
+ (t
+ (format nil
+ "select user_tables.table_name from user_tables,all_tables where user_tables.table_name=all_tables.table_name and all_tables.owner='~:@(~A~)'"
+ owner)))))
+ (mapcar #'car (database-query query database nil nil))))
+
+
+(defmethod database-list-views ((database oracle-database) &key owner)
+ (let ((query
+ (cond ((null owner)
+ "select view_name from user_views")
+ ((eq owner :all)
+ "select view_name from all_views")
+ (t
+ (format nil
+ "select user_views.view_name from user_views,all_views where user_views.view_name=all_views.view_name and all_views.owner='~:@(~A~)'"
+ owner)))))
+ (mapcar #'car
+ (database-query query database nil nil))))