在PL/SQL中,可以使用DBMS_SQL.RETURN_RESULT函数来查看历史执行语句。以下是一个示例程序:
DECLARE
stmt VARCHAR2(200);
c NUMBER;
res SYS_REFCURSOR;
rec DBMS_SQL.DESC_TAB;
cnt INTEGER := 0;
BEGIN
-- 执行历史语句
stmt := 'SELECT * FROM your_table';
-- 执行语句
c := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c, stmt, DBMS_SQL.NATIVE);
DBMS_SQL.DEFINE_COLUMN_CURSOR(c, 1);
-- 获取结果
res := DBMS_SQL.EXECUTE_AND_FETCH(c);
-- 获取历史语句
DBMS_SQL.DESCRIBE_COLUMNS(c, cnt, rec);
FOR i IN 1..cnt LOOP
DBMS_OUTPUT.PUT_LINE('Column ' || i || ': ' || rec(i).col_name);
END LOOP;
-- 关闭游标
DBMS_SQL.CLOSE_CURSOR(c);
END;
在上面的示例中,我们首先定义了一个历史语句,然后使用DBMS_SQL.OPEN_CURSOR函数打开一个游标。接下来,使用DBMS_SQL.PARSE函数解析并执行历史语句。然后,使用DBMS_SQL.DEFINE_COLUMN_CURSOR函数定义一个列游标,并使用DBMS_SQL.EXECUTE_AND_FETCH函数获取结果。最后,使用DBMS_SQL.DESCRIBE_COLUMNS函数来获取历史语句的列信息。
请注意,上面的示例仅适用于查询语句。如果要执行其他类型的语句(如插入、更新或删除语句),则需要相应地修改代码。