在 Oracle 中,可以使用动态 SQL 来编写存储过程以查询动态表名。以下是一个示例:\n\nsql\nCREATE OR REPLACE PROCEDURE dynamic_table_query (p_table_name IN VARCHAR2)\nIS\n v_sql VARCHAR2(200);\n v_result NUMBER;\nBEGIN\n -- 构建动态 SQL 语句\n v_sql := 'SELECT COUNT(*) FROM ' || p_table_name;\n \n -- 执行动态 SQL\n EXECUTE IMMEDIATE v_sql INTO v_result;\n \n -- 输出结果\n DBMS_OUTPUT.PUT_LINE('Table ' || p_table_name || ' has ' || v_result || ' rows.');\nEXCEPTION\n WHEN OTHERS THEN\n -- 处理异常\n DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);\nEND;\n/\n\n\n在上述示例中,存储过程 dynamic_table_query 接受一个参数 p_table_name,该参数表示要查询的表名。存储过程使用动态 SQL 构建查询语句,并执行该语句以获取结果。最后,使用 DBMS_OUTPUT.PUT_LINE 输出结果。\n\n你可以通过调用该存储过程并传递表名来查询指定表的行数。例如:\n\nsql\nBEGIN\n dynamic_table_query('employees');\nEND;\n/\n\n\n上述代码将查询 employees 表的行数并将结果输出到控制台。


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

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