【发布时间】:2018-04-10 18:59:06
【问题描述】:
我有一个问题:
SELECT
q1.table_name,
q1.column_name,
q1.data_type,
q1.nullable,
q2.comments
FROM
(
SELECT
table_name,
column_name,
data_type,
nullable
FROM
USER_TAB_COLUMNS
WHERE TABLE_NAME = 'EMPLOYEES'
) q1
JOIN
(
SELECT
column_name,
comments
FROM
USER_COL_Comments
WHERE TABLE_NAME = 'EMPLOYEES'
) q2 ON q1.column_name = q2.column_name;
它工作正常,但我需要将我的表名作为参数。我只是被卡住了。我怎样才能做到这一点? Oracle中的函数和存储过程有什么区别?在这种情况下使用什么更好?非常感谢您的帮助。
【问题讨论】:
-
如果必须对表进行参数化,您需要将查询作为动态语句执行。函数和存储过程的区别在于,函数必须使用 return 语句显式返回值,而过程则不需要。
-
要使用的函数或存储过程取决于您的情况,具体取决于您要执行的操作。例如,如果它只是一个选择并写入日志文件,那么一个过程就可以了。如果有值要返回给调用方法,则可以使用函数。