精华内容
下载资源
问答
  • 利用PL/SQL创建一个存储过程proc_AddWage,给scott用户下emp表中每个工资低于3500工资的人涨工资500块,总是报错, 看不出错误在哪里,我是初学者,请求各位大侠们赐教!!!谢谢 下面是我写的代码的图片 另外...
  • 如何创建一个存储过程

    千次阅读 2015-03-12 08:02:48
    --例子:创建一个存储过程,使之可以批量插入权限 --第一步:判断系统中是否存在该存储过程,有就删除 if(exists(select * from sys.objects where name='proc_add_right_complex')) drop proc proc_add_right_...
     
    
    --例子:创建一个存储过程,使之可以批量插入权限
    --第一步:判断系统中是否存在该存储过程,有就删除
    if(exists(select * from sys.objects where name='proc_add_right_complex'))
    drop proc proc_add_right_complex
    go
    --第二步:声明存储过程名称和参数
    create proc proc_add_right_complex(@moduleName varchar(200))
    as
    --第三步,进行逻辑操作
    insert into [WBIS].[dbo].[Opreations]
    values
    (newid(),'add','新增',1,@moduleName,	'lib/icons/silkicons/add.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'edit','修改',2	,@moduleName	,'lib/icons/silkicons/application_edit.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'delete','删除',3,@moduleName	,'lib/icons/silkicons/delete.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'view','查看',4,@moduleName	,'lib/icons/silkicons/application_view_detail.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'config	','配置',5,	@moduleName,	'lib/icons/silkicons/bricks.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL)
    go
    
    
    --例子:创建一个存储过程,使之可以批量插入权限
    --第一步:判断系统中是否存在该存储过程,有就删除
    if(exists(select * from sys.objects where name='proc_add_right_simple'))
    drop proc proc_add_right_simple
    go
    --第二步:声明存储过程名称和参数
    create proc proc_add_right_simple(@moduleName varchar(200))
    as
    --第三步,进行逻辑操作
    insert into [WBIS].[dbo].[Opreations]
    values
    (newid(),'add','新增',1,@moduleName,	'lib/icons/silkicons/add.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'edit','修改',2	,@moduleName	,'lib/icons/silkicons/application_edit.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'delete','删除',3,@moduleName	,'lib/icons/silkicons/delete.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'view','查看',4,@moduleName	,'lib/icons/silkicons/application_view_detail.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL),
    (newid(),'config	','配置',5,	@moduleName,	'lib/icons/silkicons/bricks.png',	'E829F6B4-D0B0-4C1D-8227-06C4E87C624B',	NULL)
    go
    
    
    --第四步,使用存储过程
    exec proc_add_right_simple ''

    展开全文
  • 定义一个名为proc_select_user() 的存储过程,里边有一条查询语句 create PROCEDURE proc_select_user() begin select * from t_user; end; 存储过程调用 使用call 关键字调用 call proc_select_user();

    存储过程定义

    定义一个名为proc_select_user() 的存储过程,里边有一条查询语句

    create PROCEDURE proc_select_user()
    begin
    select * from t_user;
    end;
    
    
    

    存储过程调用

    使用call 关键字调用

    call proc_select_user();
    
    展开全文
  • --创建一个存储过程 create proc multi @num1 int, @num2 int=10 output --output的功能类似于C#中的out修饰参数 as set @num2=@num2*@num1 if @num2 > 40 --如果num2 > 0,则输出,否则,不输出 print @num...
    --创建一个存储过程
    create proc multi
    @num1 int,
    @num2 int=10 output     --output的功能类似于C#中的out修饰参数
    as
    set @num2=@num2*@num1
    if @num2 > 40			--如果num2 > 0,则输出,否则,不输出
    	print @num2
    
    
    --执行存储过程
    exec multi 5
    
    展开全文
  • 编写一个最最简单的存储过程,给它起个名字叫做proc_helloworldCREATE OR REPLACE PROCEDURE proc_helloworldISBEGIN DBMS_OUTPUT.put_line ('Hello World!');END;/2.创建。在sqlplus命令行界面创建存储过程sys@...

    1.编写。编写一个最最简单的存储过程,给它起个名字叫做proc_helloworld
    CREATE OR REPLACE PROCEDURE proc_helloworld
    IS
    BEGIN
       DBMS_OUTPUT.put_line ('Hello World!');
    END;
    /

    2.创建。在sqlplus命令行界面创建该存储过程
    sys@ora10g> conn sec/sec
    Connected.
    sec@ora10g> CREATE OR REPLACE PROCEDURE proc_helloworld
      2  IS
      3  BEGIN
      4     DBMS_OUTPUT.put_line ('Hello World!');
      5  END;
      6  /

    Procedure created.

    3.运行。两种方法运行存储过程
    1).需要在屏幕上显示出"DBMS_OUTPUT.put_line"的输出字符串,需要做一个小小的设置
    sec@ora10g> show serveroutput
    serveroutput OFF
    sec@ora10g> set serveroutput on
    sec@ora10g> show serveroutput
    serveroutput ON SIZE 10000 FORMAT WORD_WRAPPED

    2).在sqlplus命令行界面使用"EXECUTE"命令(简写做"EXEC")执行
    sec@ora10g> exec proc_helloworld
    Hello World!

    PL/SQL procedure successfully completed.

    3).在一个无名PL/SQL块内运行存储过程
    BEGIN
       proc_helloworld;
    END;
    /

    sec@ora10g> BEGIN
      2     proc_helloworld;
      3  END;
      4  /
    Hello World!

    PL/SQL procedure successfully completed.

    4.修改。修改一个存储过程只需要将修改好的存储过程在sqlplus界面先重新执行一下即可,因为在创建过程中使用的是"CREATE OR REPLACE PROCEDURE",也就是说如果没有就创建,如果已经存在了这个存储过程,就替换它
    CREATE OR REPLACE PROCEDURE proc_helloworld
    IS
    BEGIN
       DBMS_OUTPUT.put_line ('Hello World! '||chr(10)||'I am a Happy DBA Secooler!');
    END;
    /
    或者
    CREATE OR REPLACE PROCEDURE proc_helloworld
    IS
    BEGIN
       DBMS_OUTPUT.put_line ('Hello World! 
    I am a Happy DBA Secooler!');
    END;
    /

    sec@ora10g> CREATE OR REPLACE PROCEDURE proc_helloworld
      2  IS
      3  BEGIN
      4     DBMS_OUTPUT.put_line ('Hello World! '||chr(10)||'I am a Happy DBA Secooler!');
      5  END;
      6  /

    Procedure created.

    看一下执行效果:
    sec@ora10g> exec proc_helloworld;
    Hello World!
    I am a Happy DBA Secooler!

    PL/SQL procedure successfully completed.

    5.调试。对于非常复杂的存储过程的调试是真正体现个人魅力和能力的地方,往往需要很多的经验,这个急不得,只能慢慢来 Take it easy.
    在sqlplus下调试存储过程时,如果出现错误,时刻使用"show errors"命令查看哪里出错了,例如:
    sec@ora10g> CREATE OR REPLACE PROCEDURE proc_helloworld
      2  IS
      3  BEGIN
      4     DBMS_OUTPUT.put_line ('Hello World!');
      5  END
      6  /

    Warning: Procedure created with compilation errors.

    sec@ora10g> show errors
    Errors for PROCEDURE PROC_HELLOWORLD:

    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    5/3      PLS-00103: Encountered the symbol "end-of-file" when expecting
             one of the following:
             ; <an identifier> <a double-quoted delimited-identifier>
             delete exists prior <a single-quoted SQL string>
             The symbol ";" was substituted for "end-of-file" to continue.

    通过提示,问题出现在END后面没有分号结束符号,修改后问题得到处理
    sec@ora10g> CREATE OR REPLACE PROCEDURE proc_helloworld
      2  IS
      3  BEGIN
      4     DBMS_OUTPUT.put_line ('Hello World!');
      5  END;
      6  /

    Procedure created.

    6.删除。使用drop语句删除存储过程
    sec@ora10g> select object_name,object_type,status from user_objects where OBJECT_TYPE='PROCEDURE';

    OBJECT_NAME                    OBJECT_TYPE         STATUS
    ------------------------------ ------------------- -------
    PROC_HELLOWORLD                PROCEDURE           VALID

    sec@ora10g> DROP PROCEDURE proc_helloworld;

    Procedure dropped.

    sec@ora10g> select object_name,object_type,status from user_objects where OBJECT_TYPE='PROCEDURE';

    no rows selected

    7.获取。在维护存储过程的过程中往往需要快速的获取存储过程的SQL创建语句,我经常使用的有如下两种方法
    1).使用DBMS_METADATA包获得
    sec@ora10g> SELECT DBMS_METADATA.get_ddl ('PROCEDURE', 'PROC_HELLOWORLD') from dual;

    DBMS_METADATA.GET_DDL('PROCEDURE','PROC_HELLOWORLD')
    --------------------------------------------------------------------------------

      CREATE OR REPLACE PROCEDURE "SEC"."PROC_HELLOWORLD"
    IS
    BEGIN
       DBMS_OUTPUT.put_line ('Hello World!');
    END;

    2).使用"USER_SOURCE"视图获得,本人推荐使用这种方法查看,格式标准,内容也全面
    sec@ora10g> SELECT text FROM user_source WHERE NAME = 'PROC_HELLOWORLD';

    TEXT
    ------------------------------------------------------------------------------------------------------------------------------
    PROCEDURE proc_helloworld
    IS
    BEGIN
       DBMS_OUTPUT.put_line ('Hello World!');
    END;

    8.小结
    上面的实验,我通过编写、创建、运行、修改、调试、删除和获取七个内容描述了一个存储过程的开发和维护过程。
    试验,实验还有实践,技术工作者永远不变的途径!
    Goodluck Friends!

    -- The End --

    转载于:https://www.cnblogs.com/pretty-boy/p/3679500.html

    展开全文
  • 创建一个存储过程,用于获取指定线路名的详细线路信息,要求显示线路名、行程天数、价格、交通工具和住宿标准。 创建一个存储过程,用于获取指定线路类型的线路个数与全部线路个数之比 实现思路: 需求说明(1)...
  • 创建一个存储过程,用于查询指定课程号的课程 --是否被学生选修,如果有学生选修, --则在该过程中设置一个输出参数用于 --返回选修该课程的学生人数, --然后让该过程返值1, --如果...
  • 编写一个最最简单的存储过程,给它起个名字叫做proc_helloworldCREATE OR REPLACE PROCEDURE proc_helloworldISBEGIN DBMS_OUTPUT.put_line ('Hello World!');END;/2.创建。在sqlplus命令行界面创建存储过程sys@...
  • create procedure proc_user @name varchar(20), @Password varchar(100) as select * from loginuser ...—创建一个有输入和输出参数的存储过程 create procedure proc_usertext @name varchar(20), @blog varchar...
  • --创建一个存储过程 Create PROCEDURE [dbo].[Proc_Users_ADD_New] --声明输入参数 @Id nvarchar(20), @Password nvarchar(8), @UserName nvarchar(20), @RoleId int, @Status char(1), @Status_Tmp char(1), @...
  • 创建存储过程

    2019-10-09 06:04:50
    可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。也可以创建在 Microsoft® SQL Server™ 启动时自动运行的存储过程。语法Create PROC [ EDURE ] ...
  • 在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程存储过程就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复...
  • -- 创建一个存储过程模板DROP PROCEDURE IF EXISTS Proc_Module; -- 先删除即将要创建存储过程,需要校验是否存在,否则会报错DELIMITER ;; -- 修改结束符,因为存储过程中会使用;作为结束符-- 创建存储过程,参数分...
  • 2.创建一个存储过程proc5; 3.执行存储过程,实现向tb_user 表中插入N条数据; DROP PROCEDURE IF EXISTS proc5; DELIMITER // CREATE PROCEDURE proc5(IN num int ) BEGIN DECLARE var INT DEFAULT 0; WH...
  • 展开全部/*创建存储过程*/CREATE PROCEDURE proc_select--建立存储过程@Sno char(10) output,--输入输出参数636f70793231313335323631343130323136353331333431356134@Sname varchar(20) out,--输出参数@Cno char(4)...
  • 1.创建一个无参存储过程pr_stuscore,查询以下信息:学号、姓名、性别、课程名称、考试成绩。 CREATE PROC pr_stuscore AS SELECT student.s_id,sname,ssex,cname,grade from student,course,grade WHERE student ...
  • USE XSCJ ...CREATE PROCEDURE dbo.proc_bgnum @xbh VARCHAR(8) AS DECLARE @nBoys INT DECLARE @nGirls INT IF object_id('tempdb..#tmpNewTable') IS NOT NULL DROP TABLE #tmpNewTable...
  • 在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程存储过程就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复...
  • 创建存储过程和函数是指将经常使用的一组SQL语句组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中。存储程序可以分为存储过程和函数。在MySQL中创建存储过程使用的语句CREATE PROCEDURE。其语法形式如下...
  • 第一种: USE [WMS]GO DECLARE@return_value int EXEC@return_value = [dbo].[Sys_GetSysNo]@NoCode = N'D001' SELECT'Return Value' = @return_value ...第二种:创建一个临时表 create proc GetUserNameasbegin...
  • --创建输出参数的存储过程:IF OBJECT_ID(p_Out) > 0 DROP PROC p_OutGOCREATE PROC p_Out @i INT OUT --要输入的参数后面必须加上OUT或OUTPUTAS SELECT @i = COUNT(1) FROM sysobjects WHERE xtype=UGO--创
  • 创建一个临时的存储过程只需要给存储过程名之前加上一个“#”即可,全局的存储过程是给存储过程名前加上两个“#”即可 临时存储过程创建成功之后当前存储过程中执行可以成功,如果新建查询时执行此临时存储过程,...
  • MySQL创建存储过程

    2018-10-07 19:19:13
    在开发过程中,经常会遇到重复使用某一个功能的情况,为此,MySQL引入了存储过程 存储过程 就是一条或多条SQL语句的集合,当对数据库进行一系列复杂操作时,存储过程可以将这些复杂操纵,封装成一个代码块,以便重复...
  • CREATE OR REPLACE PROCEDURE proc_return_deptinfo( p_deptno employees.department_id%TYPE, p_avgsal OUT employees.salary%TYPE, p_count OUT NUMBER) AS BEGIN SELECT avg(salary),count(*) INTO p_...
  • 关于存储过程创建

    2020-12-01 19:49:28
    【例】创建一个存储过程,计算指定学生(姓名)的总成绩,输入参数–姓名(nvachar(8)),输出参数–总成绩(int)。 起初,我是这样写的: create proc this_proc @name nvarchar(8),@sum_score int output as ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 724
精华内容 289
关键字:

创建一个存储过程proc