我正在尝试捕获我在PL/SQL developer上查询的D1,如下所示:
select *
from vmi_dimcustomer t1
inner join vmi_factcustomer t2
on t1.customer_num = t2.customer_num ;
Select plan_table_output from table(dbms_xplan.display_cursor(null,null,'basic'));但我收到这张纸条:
SQL_ID 9m7787camwh4m, child number 0
begin :id := sys.dbms_transaction.local_transaction_id; end;
NOTE: cannot fetch plan for SQL_ID: 9m7787camwh4m, CHILD_NUMBER: 0
Please verify value of SQL_ID and CHILD_NUMBER;
It could also be that the plan is no longer in cursor cache (check v$sql_plan)我在这里做错什么了?我在这里搜索,得到的答案是"set serveroutput off"。我不能在PL/SQL开发人员上这样做。
提前谢谢。
发布于 2021-07-14 11:18:42
PL/ statements在后台隐式执行其他语句。
dbms_xplan.display_cursor(null,null,'basic')从先前执行的语句中返回信息。是begin :id := sys.dbms_transaction.local_transaction_id; end;。
在执行SQL之后,在V$SQL中找到它,例如:
select sql_id, child_number, sql_text from v$sql
where sql_text like '%inner join vmi_factcustomer t2%';一旦找到SQL,使用上面的信息:
Select plan_table_output from
table(dbms_xplan.display_cursor(
'sql_id from above',
'child_number from above',
'basic'));https://dba.stackexchange.com/questions/295633
复制相似问题