日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

在PLSQL中,存储过程的输出参数(varchar2)最大支持多大

發(fā)布時(shí)間:2024/4/17 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在PLSQL中,存储过程的输出参数(varchar2)最大支持多大 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://www.it2down.com/it-oracle-develop/587851.htm

在PLSQL中,存儲(chǔ)過程的輸出參數(shù)(varchar2)最大支持多大?
用的數(shù)據(jù)庫(kù)是 oracle 10.2. , PLSQL 7.1 。?

我自己做了個(gè)測(cè)試
create or replace procedure te1(ResBuff out Varchar2) is
begin
? ResBuff := LPAD('a',2001,'b');
end ;

執(zhí)行結(jié)果報(bào)錯(cuò):
ORA-06502:PL/SQL:number or value error:character string buffer too small


長(zhǎng)度2000的時(shí)候正常,配置默認(rèn)的NLS_LANGUAGE = AMERICAN;NLS_CHARACTERSET = ZHS16GBK;

補(bǔ)充,這個(gè)輸出參數(shù)Varchar2最大支持長(zhǎng)度能修改嗎?

------解決的方法--------------------------------------------------------

最大支持4000,我完全沒發(fā)現(xiàn)你說的問題
create or replace procedure te1(ResBuff out Varchar2) is
begin
ResBuff := LPAD('a',2001,'b');
end ;


DECLARE
a varchar2(3000);
BEGIN
te1(a);
dbms_output.put_line(a);
END;
------解決的方法--------------------------------------------------------
你是不是在DECLARE變量的時(shí)候,只定義了2000的長(zhǎng)度。最長(zhǎng)可以是4000
------解決的方法--------------------------------------------------------
存儲(chǔ)過程中varchar2類型的變量,最大長(zhǎng)度可以達(dá)到緩沖區(qū)的最大長(zhǎng)度,即32767
而對(duì)于字段來說varchar2類型的最大長(zhǎng)度是4000
例:

SQL code SQL> create or replace procedure testproc(2 p_len int,3 p_var out varchar2)4 is5 begin6 p_var := lpad('a',p_len,'b');7 end ;8 /過程已創(chuàng)建。SQL> declare2 v_var varchar2(32767);3 v_len int := 32767;4 begin5 testproc (v_len,v_var);6 dbms_output.put_line(length(v_var));7 end;8 / 32767 PL/SQL 過程已成功完成。

?

總結(jié)

以上是生活随笔為你收集整理的在PLSQL中,存储过程的输出参数(varchar2)最大支持多大的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。