我正在使用dblink从过程schmea2.proc2调用过程schema1.proc1。 对于某些情况,schema1.proc1返回错误
ORA-06502:PL / SQL:数字或值错误:字符串缓冲区太小
但是,当我尝试使用pl / sql使用相同的输入参数执行它时,它可以正常工作。
请帮我解决错误。
代码:
var1 VARCHAR2(10),
var2 VARCHAR2(25),
var3 VARCHAR2(75),
var4 VARCHAR2(200)
begin
pkg1.getdetails@dbLINK1(var1, var2, var3,var4);
end
create or replace package body pkg1 as
procedure getdetails (var1 in varchar2, var2 out varchar2, var3 out varchar2, var4 out varchar2) as
v_var2 varchar2(100);
v_var3 varchar2(200);
begin
select col2,col3 into v_var2, v_var3
from table1 where col1 = var1;
var2 := substr(v_var2,1,25);
var3 := substr(v_var3,1,75);
exception when others then
var4 := substr(sqlerrm,1,200);
end;
端;
答案 0 :(得分:0)
评论太长了。
错误可能在这里:
module V1
class ApiController < ApplicationController
skip_before_filter :verify_authenticity_token
protect_from_forgery with: :null_session
before_filter :cors_preflight_check
after_filter :cors_set_access_control_headers
def cors_set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = '*'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = "1728000"
end
def cors_preflight_check
if request.method == "OPTIONS"
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Allow-Methods'] = '*'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Max-Age'] = '1728000'
render :text => '', :content_type => 'text/plain'
end
end
end
end
select col2, col3 into v_var2, v_var3
from table1
where col1 = var1;
和col2
可能超过100/200个字符。
你可能会去:
col3
答案 1 :(得分:0)
显然在部署中存在一个问题,即一个架构中的更改已经实现,而另一个架构中的更改未导致问题。
感谢所有人的帮助和时间。