Oracle v $session,v$mystat ให้ข้อผิดพลาด: ไม่มีตารางหรือมุมมองในการเลือก

Aug 18 2020

ฉันมีคำสั่งเลือกนี้ในขั้นตอนภายในแพ็คเกจ

select distinct sid into a from v$mystat;

SELECT PADDR,TERMINAL,SID,SERIAL# INTO CURSES,CURTER,CURSID,CURSER from v$session where sid=a;

คำสั่งทั้งสองนี้ส่งกลับข้อผิดพลาด

PL / SQL: คำสั่ง SQL ถูกละเว้น PL / SQL: ORA-00942: ไม่มีตารางหรือมุมมอง

ข้อผิดพลาดนี้เกิดขึ้นภายในขั้นตอน แต่ฉันสามารถเรียกใช้คำสั่งเหล่านี้ทีละรายการจาก sqlplus หรือในแผ่นงาน sql ในผู้ใช้คนเดียวกัน

ฉันพยายามให้สิทธิ์โดยใช้คีย์เวิร์ดที่ให้สิทธิ์ แต่เกิดข้อผิดพลาดด้านล่าง คุณมีทางออกที่เป็นไปได้หรือไม่?

เวอร์ชัน Oracle: 12c Enterprise Edition รีลีส 12.2.0.1.0 - การผลิต 64 บิต

คำตอบ

1 Plirkee Aug 18 2020 at 14:34

คุณควรอนุญาตให้เลือกv_$sessionซึ่งเป็นวัตถุที่อยู่เบื้องหลังv$sessionคำพ้องความหมาย

เช่นเดียวกับV_$MYSTATวัตถุสำหรับv$mystatคำพ้องความหมาย

GRANT SELECT ON V_$MYSTAT TO <user> GRANT SELECT ON v_$session TO <user>