精华内容
下载资源
问答
  • 存储过程的写法

    2018-05-25 10:43:06
    Mysql存储过程查询结果赋值到变量方法今天写存储过程一直报错;原因就是select 结果不能直接赋值给变量。参考了https://www.cnblogs.com/vincentvoid/p/6433085.html修改好了。 转载于:...

    Mysql存储过程查询结果赋值到变量的方法
    今天写存储过程一直报错;原因就是select 结果不能直接赋值给变量。
    参考了https://www.cnblogs.com/vincentvoid/p/6433085.html
    修改好了。

    转载于:https://blog.51cto.com/changmen/2120159

    展开全文
  • oracle存储过程的写法是【CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type)IS 变量1 类型(值范围);BEGIN select count...】。1、存储过程的基本语法:CREATE OR REPLACE PROCEDURE 存储过程...

    oracle存储过程的写法是【CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type)IS 变量1 类型(值范围);BEGIN select count...】。

    1、存储过程的基本语法:CREATE OR REPLACE PROCEDURE 存储过程名(param1 in type,param2 out type)

    IS

    变量1 类型(值范围);

    变量2 类型(值范围);

    BEGIN

    select count(*) into 变量1 from 表名 where 列名=param1;

    if (判断条件) then

    select 列名 into 变量2 from 表名 where 列名=param1;

    DBMS_OUTPUT.put_line('打印信息');

    Elsif (判断条件) then

    dbms_output.put_line('打印信息');

    Else

    Raise 异常名 (NO_DATA_FOUND);

    End if;

    Exception

    When others then

    Rollback;

    END;

    2、已命名的异常:命名的系统异常               产生原因

    ACCESS_INTO_NULL           未定义对象

    CASE_NOT_FOUND             CASE中若未包含相应的WHEN,并且没有设置ELSE时

    COLLECTION_IS_NULL           集合元素未初始化

    CURSER_ALREDAY_OPEN         游标已经打开

    DUP_VAL_NO_INDEX           唯一索引对应的列上有重复的列

    INVALID_CUSER              在不合法的游标上操作

    INVALID_NUMBER             内嵌的SQL语句不能将字符转换为数字

    NO_DATA_FOUND             使用select into 未返回行,或应用索引表未初始化

    TOO_MANY_ROWS            执行select into 时,结果集超过一行

    ZERO_DIVIDE               除数为0

    SUBSCRIPT_BEYOND_COUNT       元素下标超过嵌套表或VARRAY的最大值

    SUBSCRIPT_OUTSIDE_LIMIT        使用嵌套表或VARRAY时,将下标指定为负数

    VALUE_ERROR               赋值时,变量长度不足以容纳实际数量

    LOGIN_DENIED               PL/SQL应用程序连接到ORACLE数据库时,提供了不正确的用户名和密码

    NO_LOGGED_ON             PL/SQL应用程序在没有连接ORACLE数据库的情况下访问数据

    PROGRAM_ERROR             PL/SQL内部问题,可能需要重装数据字典& PL/SQL系统包

    ROWTYPE_MISMATCH           宿主游标变量与PL/SQL游标变量的返回类型不兼容

    SELF_IS_NULL               使用对象类型时,在NULL对象上调用对象方法

    STORAGE_ERROR             运行PL/SQL时,超出内存空间

    SYS_INVALID_ID              无效的ROWID字符串

    TIMEOUT_ON_RESOURCE         ORACLE在等待资源时超时

    3、实际例子

    2.1 没有参数的过程create or replace procedure test_count

    is

    v_total int;

    v_date varchar(20);

    begin

    select count(*) into v_total from dual;

    select to_char(sysdate,'yyyy-mm-dd') into v_date from dual;

    DBMS_OUTPUT.put_line('总人数:'||v_total);

    DBMS_OUTPUT.put_line('当前时间:'||v_date);

    end;

    调用方法:begin

    test_count;

    end;

    2.2 仅带传入参数的过程create or replace procedure test_count1(v_id in varchar2)

    as

    v_name varchar(100);

    begin

    select c_name into v_name from tb_store where c_stono=v_id;

    DBMS_OUTPUT.put_line(v_id||'店的名称为:'||v_name);

    exception

    when no_data_found then dbms_output.put_line('no_data_found');

    end;

    调用方法:begin

    test_count1(11910);

    end;

    2.3 仅带输出参数的过程create or replace procedure test_count2(v_name out varchar2)

    is

    begin

    select c_name into v_name from tb_store where c_stono='1101';

    exception

    when no_data_found then dbms_output.put_line('no_data_found');

    end;

    调用方法:declare

    v_name varchar(200);

    begin

    test_count2(v_name);

    dbms_output.put_line(v_name);

    end;

    2.4 带输入参数和输出参数的存储过程create or replace procedure test_count3(v_id in int,v_name out varchar2)

    is

    begin

    select c_name into v_name from tb_store where c_stono=v_id;

    dbms_output.put_line(v_name);

    exception

    when no_data_found then dbms_output.put_line('no_data_found');

    end;

    调用方法:declare

    v_name varchar(200);

    begin

    test_count3('1101',v_name);

    end;

    展开全文
  • 传统存储过程的写法

    2020-12-30 14:46:45
    一个传统存储过程的写法 delimiter // CREATE PROCEDURE adddevice (logCount BIGINT) BEGIN SET @currentCount = 0 ; WHILE @currentCount < logCount DO INSERT INTO `n4a`.`n4a_asset_pt` ( `id`, `...

    一个传统存储过程的写法

    delimiter // 
    CREATE PROCEDURE adddevice (logCount BIGINT)
    BEGIN
    
    SET @currentCount = 0 ;
    WHILE @currentCount < logCount DO
    	INSERT INTO `n4a`.`n4a_asset_pt` (
    	`id`,
    	`sortId`,
    	`cid`,
    	`mac`,
    	`authType`,
    	`deviceType`,
    	`manuFacturer`,
    	`model`,
    	`deptId`,
    	`user`,
    	`phone`,
    	`mail`,
    	`reMarks`,
    	`regreView`,
    	`secadminRemarks`,
    	`regreViewTime`,
    	`authterTable`,
    	`operaStatus`,
    	`updateStatus`
    )
    VALUES
    	(
    		UUID_SHORT(),
    		@currentCount +3,
    		UUID_SHORT(),
    		UUID_SHORT(),
    		'4',
    		'1',
    		'lm',
    		'acer',
    		'1004',
    		'',
    		'',
    		'',
    		'',
    		'3',
    		NULL,
    		'2020-12-29 11:31:43',
    		NULL,
    		'0',
    		'0'
    	);
    SET @currentCount = @currentCount + 1 ;
    END
    WHILE ;
    END ;// 
    delimiter ;
    
    
    CALL adddevice (20000);
    
    DROP PROCEDURE
    IF EXISTS adddevice;
    

    有需要的同学可以借鉴该模板

    展开全文
  • 存储过程的写法大全

    2007-11-07 06:37:04
    介绍存储过程的写法和使用。
  • SQL Server存储过程的写法以及应用,是本人自己对SQL Server存储过程的一个总结应用,希望对你的学习有帮助。
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER // ...

    14826bdd436b8ac9d34de9e0044525f2.png

    可以使用 CREATE PROCEDURE 语句创建存储过程。

    数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER // CREATE PROCEDURE myproc(OUT s int) BEGIN SELECT COUNT(*) INTO s FROM students; END //DELIMITER ;

    例:创建一个简单的存储过程-- ------------------------------ Procedure structure for `proc_adder`-- ----------------------------DROP PROCEDURE IF EXISTS `proc_adder`;DELIMITER ;;CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)BEGIN #Routine body goes here... DECLARE c int; if a is null then set a = 0; end if; if b is null then set b = 0; end if;set sum = a + b;END;;DELIMITER ;

    执行以上存储结果,验证是否正确,如下图set @b=5;call proc_adder(2,@b,@s);select @s as sum;

    f2c8bfda03fc64e875edce167a208b68.png

    展开全文
  • SupplyAGSlnProcedure(MSSQLserver存储过程的写法),写储存过程一定要标准一点,要和不写,要写就要写好注释,还有测试到位。
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER //CREATE...
  • asp.net中怎样调用存储过程和存储过程的写法 创建一个只有输入参数的存储过程 create procedure proc_user @name varchar(20), @Password varchar(100) as  select * from loginuser  where name like @...
  • DB2中游标的利用以及存储过程的写法.(2011-07-24 06:00:45)标签:杂谈DB2 中游标的利用以及 存储过程的写法问题1:什么时候才会发生not found失常 ,以及db2中sqlcode的值是如何改变的?在db2中,一条select 语句也...
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER //CREATE...
  • 存储过程 SET NOCOUNT ON: 当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。\ 当 SET NOCOUNT 为 OFF 时,返回计数。...带有事务的存储过程的写法 CREATE PROCEDUR
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER //CREATE...
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER //CREATE...
  • asp.net中怎样调用存储过程和存储过程的写法 创建一个只有输入参数的存储过程 create procedure proc_user@name varchar(20),@Password varchar(100)asselect * from loginuserwhere name like @name ---创建一个...
  • oracle存储过程的写法

    千次阅读 2018-06-15 15:24:47
    create or replace procedure 要创建的存储过程名称(入参a in varchar2, 出参b out varchar2) is 变量c varchar2(2000); 变量d number(10); 异常变量e exception; begin ...
  • (注意事项: 在使用游标时候,... 存储过程示例 CREATE DEFINER=`root`@`::1` PROCEDURE `earnings_proceduce`(out result varchar(100)) label:BEGIN #收益记录分配 # 基本参数定义 # 总金额 ...
  • postgresql下存储过程的写法(2008-07-03 11:36:40)转载标签:postgresqldatabasedb存储过程函数it分类:程序员修炼之道 在当前这个项目里(empress),我主要应用到了两种服务端编程语言:扩展SQL中的查询语言函数...
  • 可以使用 CREATE PROCEDURE 语句创建存储过程。数据库存储过程语法格式如下:CREATE PROCEDURE 过程名([[IN|OUT|INOUT] 参数名 数据类型[,[IN|OUT|INOUT] 参数名 数据类型…]]) [特性 ...] 过程体DELIMITER //CREATE...
  • navicat中存储过程的写法

    千次阅读 2019-07-26 10:38:24
    步骤一. ...这里我写了一段存储过程。大意是按时间递增分别向两张表插入30000条数据 CREATE DEFINER=`mycat2`@`%` PROCEDURE `inst`() BEGIN DECLARE i INT; declare j int; declare ym varchar(...
  • MySQL循环存储过程的写法

    千次阅读 2018-02-24 10:06:12
    创建 MySQL 存储过程的简单语法为:CREATE PROCEDURE 存储过程名称( [in | out | inout] 参数 ) BEGIN Mysql 语句 END几个循环语句的格式如下:WHILE……DO……END WHILEREPEAT……UNTIL END REPEATLOOP……...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,333
精华内容 533
关键字:

存储过程的写法