在 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 表的行数并将结果输出到控制台

Oracle 存储过程 动态表名查询

原文地址: http://www.cveoy.top/t/topic/ikKD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录