当前位置: 首页 > 知识库问答 >
问题:

VARCHAR2(32767)无法处理存储过程中的字符串

滕璞瑜
2023-03-14

我正在使用游标连接字符串(以形成稍后执行的查询)。在这里,将要形成的查询将比VARCHAR2(32767)所能处理的要大得多。因此,我在执行过程中得到了错误-ORA-06502:PL/SQL:数值或值错误:字符串缓冲区太小。

我也使用了CLOB数据类型,但得到了错误ORA-06502:PL/SQL:numeric或value错误。

我的代码如下:

CREATE OR REPLACE PROCEDURE sp_Market
IS
   Names VARCHAR2(32767);    
BEGIN
   DECLARE CURSOR cur IS  ('Select ID, Order_of, field_name  
   FROM   pld_medicare_config');
   BEGIN       
   FOR i IN cur
       LOOP
           Names := Names ||  i.sqql;
       END LOOP;    
   dbms_output.put_line(Names);
   END;   
END sp_Market;

我如何处理我的查询字符串,有什么数据类型来完成任务?

共有1个答案

薛宇
2023-03-14

clob可以(据我所知);我怀疑你储存在那里的询问有那么大。

从过程中删除dbms_output.put_line调用;我怀疑是它引起了错误。

 类似资料:
  • 我在雪花存储过程中使用反勾来构建下面的插入查询,它在激发sql时工作得很好 我还想将此查询记录到日志表中,由于TO_DATE函数'yyyymmdd'中的单引号,该查询失败了: 尝试使用javascript函数replaceAll()将单引号替换为2个单引号('->''),但雪花存储过程中不支持此函数。有人能建议如何在插入日志条目时消除此错误吗

  • 我需要在我的存储过程中添加错误处理。我相信当只有一个insert语句时,通常不需要使用BEGIN TRAN/COMMIT TRAN。还有使用SET XACT_ABORT,NOCOUNT ON语句的意义是什么。请给出最佳/标准的方法将错误处理添加到下面的SP中。如果出现错误,我还需要在catch段中调用dbo.usp_get_error_info。请建议。

  • 问题内容: 我相信MySQL当前没有可用的东西允许访问MySQL存储过程中最后执行的语句。这意味着在存储过程中引发泛型时,很难/不可能得出错误的确切性质。 是否有人有变通办法来推导MySQL存储过程中的错误,而不涉及为每个可能的SQLSTATE声明处理程序? 例如,假设我正在尝试返回一个error_status,它超出了下面的通用“ SQLException在此块中的某处发生”: 有小费吗? PS

  • 本文向大家介绍mysql存储过程中的异常处理解析,包括了mysql存储过程中的异常处理解析的使用技巧和注意事项,需要的朋友参考一下 定义异常捕获类型及处理方法:  这里面需要注意几点:  a、condition_value [,condition_value],这个的话说明可以包括多种情况(方括弧表示可选的),也就是一个handler可以定义成针对多种情况进行相应的 操作;另外condition_

  • 我正在编写一个Spring批处理应用程序: null

  • 我用java运行代码,Unicode字符可以显示正确,但当我用maven(Mvn clean test)运行代码时,Unicode字符显示不正确。我有用户范围报告和扩展报告显示日志的Unicode字符也不正确 实际结果:?y l v?n b?n ti?ng vi?t 预期结果:Derâlàvăn b n tiéng viét