Oracle 存储过程 动态表名查询
在 Oracle 中,可以使用动态 SQL 来编写存储过程以查询动态表名。以下是一个示例:
CREATE OR REPLACE PROCEDURE dynamic_table_query (p_table_name IN VARCHAR2)
IS
v_sql VARCHAR2(200);
v_result NUMBER;
BEGIN
-- 构建动态 SQL 语句
v_sql := 'SELECT COUNT(*) FROM ' || p_table_name;
-- 执行动态 SQL
EXECUTE IMMEDIATE v_sql INTO v_result;
-- 输出结果
DBMS_OUTPUT.PUT_LINE('Table ' || p_table_name || ' has ' || v_result || ' rows.');
EXCEPTION
WHEN OTHERS THEN
-- 处理异常
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
/
在上述示例中,存储过程 dynamic_table_query 接受一个参数 p_table_name,该参数表示要查询的表名。存储过程使用动态 SQL 构建查询语句,并执行该语句以获取结果。最后,使用 DBMS_OUTPUT.PUT_LINE 输出结果。
你可以通过调用该存储过程并传递表名来查询指定表的行数。例如:
BEGIN
dynamic_table_query('employees');
END;
/
上述代码将查询 employees 表的行数并将结果输出到控制台
原文地址: http://www.cveoy.top/t/topic/ikKD 著作权归作者所有。请勿转载和采集!