Error: ORA-06502: PL/SQL: 数字或值错误 : character string buffer too small(触发器中使用系统动态视图导致)

oracle 触发器中,在工具toad中使用F5报错
15:27:51 Error: ORA-06502: PL/SQL: 数字或值错误 : character string buffer too small
ORA-06512: 在 line 14
使用F9报错
[Error] ORA-00942 (29: 11): PL/SQL: ORA-00942: 表或视图不存在

复制代码
 create table tab_del_recored(
SID# number,
USERNAME varchar2(100),
PROGRAM# varchar2(100),
MACHINE varchar2(100),
IPADD varchar2(32),
MODITIME date,
TABLE_NAME varchar2(100),
TYPE_TRI varchar2(10)
);
复制代码

触发器

复制代码
/* Formatted on 2020/7/1 15:27:33 (QP5 v5.256.13226.35510) */
CREATE OR REPLACE TRIGGER USERSES_tr
   BEFORE DELETE
   ON SCOTT.USERSES
   FOR EACH ROW
DECLARE
   V_SYSDATE      DATE DEFAULT SYSDATE;
   V_TABLE_NAME   VARCHAR2 (100);
   V_TRI_TYPE     VARCHAR2 (100);
   V_ID           NUMBER;
   V_USERNAME     VARCHAR2 (100);
   V_PROGRAM      VARCHAR2 (100);
   V_MACHINE      VARCHAR2 (100);
   V_IP           VARCHAR2 (100);
BEGIN
   V_TABLE_NAME := 'SCOTT_USERSES';
   V_TRI_TYPE := 'DELETE';

   SELECT sid,
          username,
          program,
          machine,
          SYS_CONTEXT ('userenv', 'ip_address')
     INTO V_ID,
          V_USERNAME,
          V_PROGRAM,
          V_MACHINE,
          V_IP
     FROM v$session
    WHERE audsid = USERENV ('sessionid');

   INSERT INTO tab_del_recored (SID#,
                                USERNAME,
                                PROGRAM#,
                                MACHINE,
                                IPADD,
                                MODITIME,
                                TABLE_NAME,
                                TYPE_TRI)
        VALUES (V_ID,
                V_USERNAME,
                V_PROGRAM,
                V_MACHINE,
                V_IP,
                V_SYSDATE,
                V_TABLE_NAME,
                V_TRI_TYPE);
END;
复制代码

直接使用sql是可以执行的,但是在触发器的编译中会报错。

查阅资料,

需要赋予权限
使用sys账号执行
 grant select on sys.v_$session to SCOTT;

 

posted @   春困秋乏夏打盹  阅读(2398)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示