如何把sql查询语句变成存储过程

如何把sql查询语句变成存储过程

history 发布于 2018-12-31 14:54
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
3
城落满芯Lv6中级互助
发布于2018-12-31 15:06

ORACLE存储过程建立:

CREATE [OR REPLACE] PROCEDURE 存储过程名[(参数[IN|OUT|IN OUT] 数据类型...)] 
{AS|IS} 
[说明部分] 
BEGIN 
可执行部分 
[EXCEPTION 
错误处理部分] 
END [过程名]; 



百度案例如下:

创建一个显示雇员总人数的存储过程。 
步骤1:登录SCOTT账户(或学生个人账户)。 
步骤2:在SQL*Plus输入区中,输入以下存储过程: 

Sql代码 复制代码

  1. CREATE OR REPLACE PROCEDURE EMP_COUNT   

  2. AS  

  3. V_TOTAL NUMBER(10);   

  4. BEGIN  

  5.  SELECT COUNT(*) INTO V_TOTAL FROM EMP;   

  6.  DBMS_OUTPUT.PUT_LINE('雇员总人数为:'||V_TOTAL);   

  7. END;  


步骤3:按“执行”按钮进行编译。 
如果存在错误,就会显示: 
警告: 创建的过程带有编译错误。 
如果存在错误,对脚本进行修改,直到没有错误产生。 
如果编译结果正确,将显示: 

Sql代码 复制代码

  1. 过程已创建。    


步骤4:调用存储过程,在输入区中输入以下语句并执行: 

[sql] view plaincopy

  1. EXECUTE EMP_COUNT;  


显示结果为:  

[sql] view plaincopy

  1. 雇员总人数为:14  

  2.         PL/SQL 过程已成功完成。  


说明:在该训练中,V_TOTAL变量是存储过程定义的局部变量,用于接收查询到的雇员总人数。 
注意:在SQL*Plus中输入存储过程,按“执行”按钮是进行编译,不是执行存储过程。 
  如果在存储过程中引用了其他用户的对象,比如表,则必须有其他用户授予的对象访问权限。一个存储过程一旦编译成功,就可以由其他用户或程序来引用。但存储过程或函数的所有者必须授予其他用户执行该过程的权限。
存储过程没有参数,在调用时,直接写过程名即可。 


  • history history(提问者) select sum( RpTotalNums) from [BMMES_JM].[dbo].[M_JOB_REPORTWORK]; 怎么变成存储过程?
    2018-12-31 15:31 
  • 城落满芯 城落满芯 回复 history(提问者) CREATE OR REPLACE PROCEDURE test AS BEGIN select sum( RpTotalNums) from [BMMES_JM].[dbo].[M_JOB_REPORTWORK]; END;
    2018-12-31 15:35 
  • 城落满芯 城落满芯 回复 history(提问者) 你没有理解存储过程是做什么用的,它是用来处理存在 数据处理中间结果,用中间结果再做相关运算;而用一个SQL也可以实现,但是效率太低,用存储过程处理效率大大提升; 还有需要形成落地表,存储过程需要添加数据时间来实现调度循环抽数用的
    2018-12-31 15:38 
  • history history(提问者) 回复 城落满芯 SELECT ProductLineID as 线体编码 FROM [BMMES_JM].[dbo].[S_SY_ProductLine] WHERE ProductLine =\'${line}\' 现在ProductLine是传进来的值,ProductLineID是我的查询结果,如何把这样一条SQL查询语句变成存储过程
    2018-12-31 16:17 
  • 城落满芯 城落满芯 回复 history(提问者) 带参数的存储过程喽
    2018-12-31 16:42 
  • 2关注人数
  • 443浏览人数
  • 最后回答于:2018-12-31 15:06
    请选择关闭问题的原因
    确定 取消
    返回顶部