当前位置:首页 » 存储配置 » 存储过程调用失败

存储过程调用失败

发布时间: 2022-08-18 05:49:12

Ⅰ asp引用存储过程失败

调用存储过程不可以直接写sql语句的 我给你写个我做过的例子吧 你自己照着改下或者 搜asp调用存储过程

setcmd=Server.CreateObject("ADODB.Command")
cmd.ActiveConnection=connstr'数据库连接字串
cmd.CommandText="dbo.P_viewPage_A"'存储过程名
cmd.CommandType=4'使用的是存储过程
cmd.CommandTimeout=0'超时
cmd.Prepared=true'将SQL命令先行编译
cmd.Parameters.Appendcmd.CreateParameter("@TableName",200,1,200,datafrom)
cmd.Parameters.Appendcmd.CreateParameter("@FieldList",200,1,2000,FieldList)
cmd.Parameters.Appendcmd.CreateParameter("@PrimaryKey",200,1,100,"id")
cmd.Parameters.Appendcmd.CreateParameter("@Where",200,1,2000,datawhere)
cmd.Parameters.Appendcmd.CreateParameter("@Order",200,1,1000,taxis)
cmd.Parameters.Appendcmd.CreateParameter("@SortType",20,1,,3)
cmd.Parameters.Appendcmd.CreateParameter("@RecorderCount",20,1,,0)
cmd.Parameters.Appendcmd.CreateParameter("@PageSize",20,1,,pages)
cmd.Parameters.Appendcmd.CreateParameter("@PageIndex",20,1,,page)
cmd.Parameters.Appendcmd.CreateParameter("@TotalCount",20,2)
cmd.Parameters.Appendcmd.CreateParameter("@TotalPageCount",20,2)

setrs=cmd.Execute()'有返回记录集并赋给rs

rs.close

Ⅱ SQL存储过程调用时错误,请高手帮忙

很简单的一个东西,你为什么要用动态sql啊

ALTERPROCEDURE[dbo].[INSERT_TMPL0025_D60]
@sales_ordervarchar(100)
AS
insertintoTMPL0025_D60(
SALES_ORDER,
CUSTOMER_PTR,
CUST_PART_PTR,
INVENTORY_PTR,
COMM_ASSIGNED_BY_E_P,
QUOTE_PTR,
CUST_SHIP_ADDR_PTR,
NOTE_PAD_PTR,
CONF_BY_EMPL_PTR,
CSI_USER_PTR,
ENTERED_BY_EMPL_PTR,
MODIFIED_BY_EMPL_PTR,
PURCHASE_ORDER_PTR,
P_CODE,
[STATUS]
)
select
SALES_ORDER,
CUSTOMER_PTR,
CUST_PART_PTR,
INVENTORY_PTR,
COMM_ASSIGNED_BY_E_P,
QUOTE_PTR,
CUST_SHIP_ADDR_PTR,
NOTE_PAD_PTR,
CONF_BY_EMPL_PTR,
CSI_USER_PTR,
ENTERED_BY_EMPL_PTR,
MODIFIED_BY_EMPL_PTR,
PURCHASE_ORDER_PTR,
P_CODE,
[STATUS]
fromdata0060
wheresales_order=@sales_order

Ⅲ C#调用存储过程参数问题以及参数值从Sqlparameter转换到String失败的原因。

还是数据调用的问题,就是数据类型不匹配,仔细看一下吧,中间有没有数值转换的操作.不一定就是出错的位置的问题.设一个断点,一步一步调,检查每一步变量值的变化,仔细观察每一步出现的提示和你预想是否一样.

Ⅳ Oracle中存储过程相互调用问题

使用包返回存储过程结果集,例子:

create or replace package pkg_return_table
is
type c1 is ref
cursor;
procere p_return_table(v_c1 out c1); --定义存储过程返回一个结果集

function f_return_table return pkg_return_table.c1; --定义函数返回一个结果集
procere
p_return_table1(v_id int,v_c1 out c1,v_c2 out c1);
--定义存储过程返回多个结果集
end;
/

create or replace package body pkg_return_table
is
procere
p_return_table(v_c1 out c1)
is
begin
open v_c1 for select * from
student;
end p_return_table;
function f_return_table return
pkg_return_table.c1
is
v_c1 pkg_return_table.c1;
begin

open v_c1 for select * from student;
return v_c1;
end
f_return_table;
procere p_return_table1(v_id int,v_c1 out c1,v_c2 out
c1)
is
sqlstr varchar2(500);
begin
sqlstr:='select * from
student';
open v_c1 for sqlstr; --使用动态sql
sqlstr:='select * from
student where id=:w_id';
open v_c2 for sqlstr using v_id; --动态sql传参

end p_return_table1;
end pkg_return_table;
/

--存储过程调用
variable v_c1 REFCURSOR;
exec
pkg_return_table.p_return_table(:v_c1);
print v_c1;

--存储过程调用
variable v_c1 REFCURSOR;
variable
v_c2 REFCURSOR;
exec
pkg_return_table.p_return_table1(1,:v_c1,:v_c2);
print v_c1;
print
v_c2;

--函数调用
select pkg_return_table.f_return_table()
from al;

重点是定义游标变量,获取存储过程结果集,然后Open游标,就跟平常的游标一样的操作啦
不用包应该也可以的,定义REFCURSOR变量即可

Ⅳ db2 存储过程 异常处理

存储过程异常的处理:
DECLARE handler-type HANDLER FOR condition handler-action

异常处理器类型(handler-type)有以下几种:
CONTINUE 在处理器操作完成之后,会继续执行产生这个异常语句之后的下一条语句。
EXIT 在处理器操作完成之后,存储过程会终止,并将控制返回给调用者。
UNDO 在处理器操作执行之前,DB2会回滚存储过程中执行的SQL操作。在处理器操作完成之后,存储过程会终止,并将控制返回给调用者。
异常处理器可以处理基于特定SQLSTATE值的定制异常,或者处理预定义异常的类。预定义的3种异常如下所示:
NOT FOUND 标识导致SQLCODE值为+100或者SQLSATE值为02000的异常。这个异常通常在SELECT没有返回行的时候出现。
SQLEXCEPTIOIN 标识导致SQLCODE值为负的异常。
SQLWARNING 标识导致警告异常或者导致+100以外的SQLCODE正值的异常。
如果产生了NOT FOUND 或者SQLWARNING异常,并且没有为这个异常定义异常处理器,那么就会忽略这个异常,并且将控制流转向下一个语句。如果产生了SQLEXCEPTION异常,并且没有为这个异常定义异常处理器,那么存储过程就会失败,并且会将控制流返回调用者。
以下示例声明了两个异常处理器。 EXIT处理器会在出现SQLEXCEPTION 或者SQLWARNING异常的时候被调用。EXIT处理器会在终止SQL程序之前,将名为stmt的变量设为"ABORTED",并且将控制流返回给调用者。UNDO处理器会将控制流返回给调用者之前,回滚存储过程体中已经完成的SQL操作。

清单3:异常处理器示例
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING SET stmt = 'ABORTED';
DECLARE UNDO HANDLER FOR NOT FOUND;
如果预定义异常集不能满足需求,就可以为特定的SQLSTATE值声明定制异常,然后再为这个定制异常声明处理器。语法如下:

清单4:定制异常处理器
DECLARE unique-name CONDITION FOR SQLSATE 'sqlstate'
处理器可以由单独的存储过程语句定义,也可以使用由BEGIN…END块界定的复合语句定义。注意在执行符合语句的时候,SQLSATE和SQLCODE的值会被改变,如果需要保留异常前的SQLSATE和SQLCODE,就需要在执行复合语句的第一个语句把SQLSATE和SQLCODE赋予本地变量或参数。
通常,会为存储过程定义一个执行状态的输出参数(例如:poGenStatus)。
declare sqlcode integer default 0;
begin
declare continue handler for sqlexception set ret = sqlcode;
declare continue handler for sqlwarning set ret = sqlcode;
declare continue handler for not found set ret = sqlcode;
end ; --异常的声明

--异常的处理
if sqlcode< 0 or sqlcode= 100 then
set O_RetCod = RetCode;
set O_RetMsg = 'CLN02:产品实例关联客户过程出错!';
insert into LOG.OPER_LOG_TAB(PROC_NAME,OBJ_TAB,REGION_COD,OPER_COUNT,ERR_CODE,DATA_TIME,OPER_TIME)
values('P_DW_CLEAN','GLOBAL TEMP',0,0,retcode,CHAR(last_3_mon_time),current TIMESTAMP);
return;
else
set RetCode = 0;
end if;

Ⅵ 存储过程一直报错 但是编译成功了 也没有错 调用时一直不成功报错

下面是问题:
Oraclede 环境中,客户那边提出,执行存储过程时出错,信息:DBCustomException: ORA-00900: invalid SQL statement

关于这个问题之前也遇到过,一直找不到原因,没解决,时好时坏,,由于客户大部分是SQL Server,也就没太在意,现在终于麻烦来了。

我用自己创建的用户,通过P/L SQL 登陆,执行以下语句
--创建表
 create table ttt
 (
    aa varchar(20)
 )
 
 --创建存储过程
 CREATE OR REPLACE PROCEDURE   myproc  
  AS  BEGIN  
  select * from ttt;
 END 
 --执行
 exec myproc 

执行存储过程时,开始报错:ORA-00900:无效SQL语句 (上面那个错误的中文版-_-!)
这时候看右边的存储过程如下,有个红叉,

java 程序中开启一个线程调用后台存储过程,怎样得知存储过程执行完成了或者执行失败

修改存储过程,执行成功后返回一个指,然后程序判断是不是返回指定的指。

Ⅷ 调用存储过程失败

SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.selectCommand = new SqlCommand();
da.selectCommand.Connection = conn;
da.selectCommand.CommandText = "NameOfProcere";
da.selectCommand.CommandType = CommandType.StoredProcere;
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.Input;
param.Value = Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);

Ⅸ pl/sql调用存储过程不成功,求解决(oracle 10)

你的存储过程就有问题吧。我的数据库也是Oracle 10的,创建过程时报错,select中没有into子语。过程改好的话,调用是可以的。第一种的时候加括号 CALL procere_test()

热点内容
php静态方法调用对象 发布:2024-05-05 19:24:30 浏览:366
电脑LNS服务器地址 发布:2024-05-05 19:22:15 浏览:375
不属于编译程序组成的部分是什么 发布:2024-05-05 19:05:34 浏览:613
压缩面食 发布:2024-05-05 18:55:45 浏览:804
linux的gz解压命令 发布:2024-05-05 18:24:13 浏览:311
服务器机柜属于什么辐射 发布:2024-05-05 18:02:10 浏览:336
存储成本计算 发布:2024-05-05 18:02:10 浏览:584
如何把手机改安卓10 发布:2024-05-05 17:39:07 浏览:498
我的世界怎么扩容服务器内存 发布:2024-05-05 17:19:54 浏览:48
java读取文件字符 发布:2024-05-05 17:15:18 浏览:11