为过程或函数sp_Adduser指定了过多的参数

前些天写用户注册模块,用存储过程添加用户,一开始就报“为过程或函数sp_Adduser指定了过多的参数”。仔细检查数据层的用户添加函数,结果在为存储过程添加sqlparameter参数的时候,数组给写错位了(参数太多)。改正后,编译执行,结果还是报“为过程或函数sp_Adduser指定了过多的参数”。自己把存储过程程序对照了好几遍,没问题。到网上搜索,原来在执行存储过程的时候,如果以sp开头,用户创建的存储过程,总会先检查master数据库(即使该存储过程已用数据库名称限定)。   如果用户创建的存储过程与系统存储过程同名,则永远不执行用户创建的存储过程

自己平时还真没注意,我命名的sp_Adduser就是系统的存储过程,难怪不能执行,所以以后写存储过程最好别以sp开头,一不注意就会发生冲突。比如,sp_adduser,sp_addmessage,我们也会容易起这样的名,但是和系统存储过程是冲突,你自己定义的是不会被执行的,所以总是会报“为过程或函数指定了过多的参数”的错误。http://blog.csdn.net/sandyxxx/article/details/4129245

 
此外,如果是带参数的存储过程则,可以看下Params里参数是否比proc_checkhistory里的参数个数多
时间: 2024-10-31 16:28:40

为过程或函数sp_Adduser指定了过多的参数的相关文章

存储过程-“为过程或函数指定了过多的参数”的错误

最近在忙公司的一个项目,其中一个模块要用到存储过程,在程序中存储过程的具体执行过程中竟然报了"为过程或函数指定了过多的参数"的错误.仔细比较程序中的存储过程与数据库中的定义,发现两者并未出现差别.没法,只有硬着头皮一点一点的比对,半个小时过去了还是未找到错误的根源.无奈之下,只好请教其他大神.大神不愧是大神吗,只问了我一句,你的库确定连对了吗?顿时觉醒了,我配置文件中连接的是远程库,改为本地库以后程序顺利进行. 在解决问题百度的过程中,我发现出现这个错误还可能是以下几种情况: 1.存储

ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)

原文:ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!) ORACLE PL/SQL编程之六: 把过程与函数说透(穷追猛打,把根儿都拔起!)   继上篇:ORACLE PL/SQL编程之八:把触发器说透 得到了大家的强力支持,感谢.接下来再下猛药,介绍下一篇,大家一定要支持与推荐呀~!我也才有动力写后面的.   本篇主要内容如下: 6.1 引言 6.2 创建函数 6.3 存储过程 6.3.1 创建过程 6.3.2 调用存储过程 6.3.3 AUTHID 6.3.4 

第六课 过程与函数

这讲是核心重点***** 什么是过程?什么又是函数?过程和函数在delphi中无处不再.过程简单的理解就是单击一个按钮这就是一个过程,函数和过程不一样的地方就是函数能把这个过程的结果返回给我们,过程的关键字用procedure ,函数的关键字Function  下面就具体讲解过程与函数的定义 过程与函数 Pascal中的例程有两种形式:过程和函数.理论上说,过程是你要求计算机执行的操作,函数是能返回值的计算.两者突出的不同点在于:函数能返回计算结果,即有一个返回值,而过程没有.两种类型的例程都可

Oracle过程及函数的参数模式详解

一.In.out.in out模式 在Oracle中过程与函数都可以有参数,参数的类型可以指定为in.out.in out三种模式. 三种参数的具体说明,如下图所示: (1)in模式 in模式是引用传递.调用过程时实际参数将值以引用方式传递给存储过程的形式参数,形式参数在过程中是只读模式的,也就是说:只能通过形式参数读取到实际参数的值.当过程执行完毕后,实际参数的值不会发生任何变化. 过程: create or replace procedure MyProcedure(param1 in IN

Oracle数据库之PL/SQL过程与函数

Oracle数据库之PL/SQL过程与函数 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据库中,以便共享. 过程和函数均存储在数据库中,并通过参数与其调用者交换信息.过程和函数的唯一区别是函数总向调用者返回数据,而过程不返回数据. 1. 存储过程概念 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中.经过第一次编译后再次

过程与函数

过程和函数统称为PL/SQL子程序,他们是被命名的PL/SQL块,被编译后存储在数据库中,并通过输入.输出参数或输入/输出参数与其调用者交换信息.过程和函数的唯一区别是函数总向调用者返回数据,而过程则不返回数据. 一 创建函数 1 创建函数 语法: 1 CREATE [OR REPLACE] FUNCTION function_name 2 (arg1 [ { IN | OUT | IN OUT }] type1 [DEFAULT value1], 3 [arg2 [ { IN | OUT |

Delphi过程、函数传递参数的八种方式

Delphi过程函数传递参数的八种方式 Delphi过程.函数传递参数的八种方式,布布扣,bubuko.com

演示账号激活的过程:注册——>向指定邮箱发送邮件——>用户登录邮箱,激活账号

今天无意间找到了大学时写的一个功能模块,整理了一把,没做太大的改动,不由得感慨--那时写的代码实在是......呵呵呵,不过这个模块的逻辑过程是对的,现将其贡献出来: 本工程用于演示账号激活的过程:注册-->向指定邮箱发送邮件-->用户登录邮箱,激活账号 本工程编码方式:UTF-8 须执行的sql语句: create database `test`; create table `user` ( `id` char(36) not null comment '用户id', `userName`

DELPHI——过程与函数[delphi]

原文来自:http://my.oschina.net/pc100/blog/380016 过程以保留字procedure开始,没有返回值:函数以保留字function开始,有返回值. 参数位于括号里面,多个参数之间以分号分隔,例如: procedure SetDate(Year: Integer; Month: Integer; Day: Integer); 也可以将相同类型的参数组合在一起,则上述过程标题写成: procedure SetDate(Year, Month, Day: Integ