欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      [轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版)

      時(shí)間:2019-05-13 16:14:34下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《[轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《[轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版)》。

      第一篇:[轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版)

      [轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails : calling a stored procedure)在特殊情況下,grails應(yīng)用需要調(diào)用數(shù)據(jù)庫的存儲(chǔ)過程,這在grails的官方文檔里邊好像沒有提到過,在james的blog里介紹如何解決這個(gè)問題。代碼轉(zhuǎn)貼如下

      java 代碼

      1.class MainController {

      2.3.def dataSource // using the datasource we define in the sprin

      g's resources.xml

      4.5.def index = {

      6.Sql sql = new Sql(dataSource)

      7.def row = sql.execute(“call create_daily_hours(${new Date

      ()+1})”)

      8.}

      9.}

      需要說明的一些是:grails本身沒有提供訪問存儲(chǔ)過程的便捷方法,而groovy的GSQL提供了,因此grails可以直接拿過來用了,當(dāng)然也可以用spring的JdbcTemplate。

      希望對(duì)grails用戶有點(diǎn)用。

      原文地址:http://grails.group.javaeye.com/group/blog/86666

      My experience with grails is getting richer the longer I use it for web application developing.It's very nice that grails is built on top of

      spring framework which we can take advantage of.I am not a spring user before but with a help from the nice people at the grails forum I was able to achieve what I want to do.Calling a stored procedure from a MySQL database or any other database is simple.First we need a datasource which spring could provide for us.I have the following code place in the resources.xml found in the spring folder in your grails folder.

      org.hsqldb.jdbcDriver

      jdbc:hsqldb:hsql://localhost

      sa

      I use connection pooling for better performance.In my controller here is how I use the datasource to call a store procedure.class MainController {

      def dataSource // using the datasource we define in the spring's resources.xml

      def index = {

      Sql sql = new Sql(dataSource)

      def row = sql.execute(“call create_daily_hours(${new Date()+1})”)}

      }

      That's it!Notice that I am using Groovy SQL instead of Spring JDBCTemplate.It's a lot more friendlier for a beginner.Grails really makes everything easy here and provides a lot of flexibility thanks to it's nice integration with spring.From here everything is possible.原文地址:

      附:朝花夕拾——Groovy & Grails

      posted on 2007-06-04 19:39 山風(fēng)小子

      第二篇:用java調(diào)用oracle存儲(chǔ)過程總結(jié)

      用java調(diào)用oracle存儲(chǔ)過程總結(jié)

      分類: PL/SQL系列 2009-09-24 15:08 253人閱讀 評(píng)論(0)收藏 舉報(bào)

      聲明:

      以下的例子不一定正確,只是為了演示大概的流程。

      一:無返回值的存儲(chǔ)過程 存儲(chǔ)過程為:

      CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)AS BEGIN

      INSERT INTO HYQ.B_ID(I_ID,I_NAME)VALUES(PARA1, PARA2);END TESTA;

      然后呢,在java里調(diào)用時(shí)就用下面的代碼: package com.hyq.src;

      import java.sql.*;import java.sql.ResultSet;

      public class TestProcedureOne {

      public TestProcedureOne(){

      }

      public static void main(String[] args){

      String driver = “oracle.jdbc.driver.OracleDriver”;

      String strUrl = “jdbc:oracle:thin:@127.0.0.1:1521: hyq ”;

      Statement stmt = null;

      ResultSet rs = null;

      Connection conn = null;

      CallableStatement cstmt = null;

      try {

      Class.forName(driver);

      conn = DriverManager.getConnection(strUrl, “ hyq ”, “ hyq ”);

      CallableStatement proc = null;

      proc = conn.prepareCall(“{ call HYQ.TESTA(?,?)}”);

      proc.setString(1, “100”);

      proc.setString(2, “TestOne”);

      proc.execute();

      }

      catch(SQLException ex2){

      ex2.printStackTrace();

      }

      catch(Exception ex2){

      ex2.printStackTrace();

      }

      finally{

      try {

      if(rs!= null){

      rs.close();

      if(stmt!=null){

      stmt.close();

      }

      if(conn!=null){

      conn.close();

      }

      }

      }

      catch(SQLException ex1){

      }

      }

      } }

      二:有返回值的存儲(chǔ)過程(非列表)

      當(dāng)然了,這就先要求要建張表TESTTB,里面兩個(gè)字段(I_ID,I_NAME)。

      存儲(chǔ)過程為: CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2)AS BEGIN

      SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1;END TESTB;

      在java里調(diào)用時(shí)就用下面的代碼: package com.hyq.src;

      public class TestProcedureTWO {

      public TestProcedureTWO(){

      }

      public static void main(String[] args){

      String driver = “oracle.jdbc.driver.OracleDriver”;

      String strUrl = “jdbc:oracle:thin:@127.0.0.1:1521:hyq”;

      Statement stmt = null;

      ResultSet rs = null;

      Connection conn = null;

      try {

      Class.forName(driver);

      conn = DriverManager.getConnection(strUrl, “ hyq ”, “ hyq ”);

      CallableStatement proc = null;

      proc = conn.prepareCall(“{ call HYQ.TESTB(?,?)}”);

      proc.setString(1, “100”);

      proc.registerOutParameter(2, Types.VARCHAR);

      proc.execute();

      String testPrint = proc.getString(2);

      System.out.println(“=testPrint=is=”+testPrint);

      }

      catch(SQLException ex2){

      ex2.printStackTrace();

      }

      catch(Exception ex2){

      ex2.printStackTrace();

      }

      finally{

      try {

      if(rs!= null){

      rs.close();

      if(stmt!=null){

      stmt.close();

      }

      if(conn!=null){

      conn.close();

      }

      }

      }

      catch(SQLException ex1){

      }

      }

      } }

      }

      注意,這里的proc.getString(2)中的數(shù)值2并非任意的,而是和存儲(chǔ)過程中的out列對(duì)應(yīng)的,如果out是在第一個(gè)位置,那就是proc.getString(1),如果是第三個(gè)位置,就是proc.getString(3),當(dāng)然也可以同時(shí)有多個(gè)返回值,那就是再多加幾個(gè)out參數(shù)了。

      三:返回列表

      由于oracle存儲(chǔ)過程沒有返回值,它的所有返回值都是通過out參數(shù)來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數(shù),必須要用pagkage了.所以要分兩部分,1,建一個(gè)程序包。如下:

      CREATE OR REPLACE PACKAGE TESTPACKAGE AS

      TYPE Test_CURSOR IS REF CURSOR;end TESTPACKAGE;

      2,建立存儲(chǔ)過程,存儲(chǔ)過程為:

      CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR)IS BEGIN

      OPEN p_CURSOR FOR SELECT * FROM HYQ.TESTTB;END TESTC;

      可以看到,它是把游標(biāo)(可以理解為一個(gè)指針),作為一個(gè)out 參數(shù)來返回值的。在java里調(diào)用時(shí)就用下面的代碼: package com.hyq.src;import java.sql.*;

      import java.io.OutputStream;import java.io.Writer;

      import java.sql.PreparedStatement;import java.sql.ResultSet;import oracle.jdbc.driver.*;

      public class TestProcedureTHREE {

      public TestProcedureTHREE(){

      }

      public static void main(String[] args){

      String driver = “oracle.jdbc.driver.OracleDriver”;

      String strUrl = “jdbc:oracle:thin:@127.0.0.1:1521:hyq”;

      Statement stmt = null;

      ResultSet rs = null;

      Connection conn = null;

      try {

      Class.forName(driver);

      conn = DriverManager.getConnection(strUrl, “hyq”, “hyq”);

      CallableStatement proc = null;

      proc = conn.prepareCall(“{ call hyq.testc(?)}”);

      proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);

      proc.execute();

      rs =(ResultSet)proc.getObject(1);

      while(rs.next())

      {

      System.out.println(“” + rs.getString(1)+ “”+rs.getString(2)+“”);

      }

      }

      catch(SQLException ex2){

      ex2.printStackTrace();

      }

      catch(Exception ex2){

      ex2.printStackTrace();

      }

      finally{

      try {

      if(rs!= null){

      rs.close();

      if(stmt!=null){

      stmt.close();

      }

      if(conn!=null){

      conn.close();

      }

      }

      }

      catch(SQLException ex1){

      }

      }

      } }

      四。Hibernate調(diào)用存儲(chǔ)過程

      Connection con = session.connect();

      CallableStatement proc = null;

      con = connectionPool.getConnection();

      proc = con.prepareCall(“{ call set_death_age(?, ?)}”);proc.setString(1, XXX);

      proc.setInt(2, XXx);...proc.execute();

      session.close();

      在Hibernate中調(diào)用存儲(chǔ)過程的示范代碼--

      如果底層數(shù)據(jù)庫(如Oracle)支持存儲(chǔ)過程,也可以通過存儲(chǔ)過程來執(zhí)行批量更新。存儲(chǔ)過程直接在數(shù)據(jù)庫中運(yùn)行,速度更加快。在Oracle數(shù)據(jù)庫中可以定義一個(gè)名為batchUpdateStudent()的存儲(chǔ)過程,代碼如下:

      create or replace procedure batchUpdateStudent(p_age in number)as begin update STUDENT set AGE=AGE+1 where AGE>p_age;end;以上存儲(chǔ)過程有一個(gè)參數(shù)p_age,代表學(xué)生的年齡,應(yīng)用程序可按照以下方式調(diào)用存儲(chǔ)過程: tx = session.beginTransaction();Connection con=session.connection();String procedure = “{call batchUpdateStudent(?)}”;CallableStatement cstmt = con.prepareCall(procedure);cstmt.setInt(1,0);//把年齡參數(shù)設(shè)為0 cstmt.executeUpdate();tx.commit();在以上代碼中,我用的是Hibernate的 Transaction接口來聲明事務(wù),而不是采用JDBC API來聲明事務(wù)。

      存儲(chǔ)過程中有一個(gè)參數(shù)p_age,代表客戶的年齡,應(yīng)用程序可按照以下方式調(diào)用存儲(chǔ)過程:

      代碼內(nèi)容

      tx = session.beginTransaction();Connection con=session.connection();

      String procedure = “{call batchUpdateCustomer(?)}”;

      CallableStatement cstmt = con.prepareCall(procedure);

      cstmt.setInt(1,0);//把年齡參數(shù)設(shè)為0

      cstmt.executeUpdate();

      tx.commit();

      CREATE procedure selectAllUsers DYNAMIC RESULT SETS 1 BEGIN

      DECLARE temp_cursor1 CURSOR WITH RETURN TO CLIENT FOR

      SELECT * FROM test;

      OPEN temp_cursor1;END;

      映射文件中關(guān)于存儲(chǔ)過程內(nèi)容如下

      ............

      { ? = call selectAllUsers()}

      { ? = call selectAllUsers()} 也可以寫成{ call selectAllUsers()},如果有參數(shù)就寫成

      { ? = call selectAllUsers(?,?,?)}

      代碼中對(duì)query設(shè)置相應(yīng)位置上的值就OK Java調(diào)用關(guān)鍵代碼如下

      Session session = HibernateUtil.currentSession();

      Query query = session.getNamedQuery(“selectAllUsers”);

      List list = query.list();

      System.out.println(list);

      要求你的存儲(chǔ)過程必須能返回記錄集,否則要出錯(cuò)

      如果你的存儲(chǔ)過程是完成非查詢?nèi)蝿?wù)就應(yīng)該在配置文件用以下三個(gè)標(biāo)簽

      {call createPerson(?, ?)}

      {? = call deletePerson(?)}

      {? = call updatePerson(?, ?)} 有一點(diǎn)不好的地方就是調(diào)用存儲(chǔ)過程獲取記錄集時(shí),不能對(duì)Query使用

      setFirstResult(int)和setMaxResults(int)方法來分頁

      第三篇:教學(xué):數(shù)據(jù)庫-存儲(chǔ)過程資料

      教學(xué)三:存儲(chǔ)過程

      一、教學(xué)目的

      (1)掌握T-SQL流控制語句;(2)掌握創(chuàng)建存儲(chǔ)過程的方法;(3)掌握存儲(chǔ)過程的執(zhí)行方法;(4)掌握存儲(chǔ)過程的管理和維護(hù)。

      二、教學(xué)內(nèi)容

      1、創(chuàng)建簡單存儲(chǔ)過程

      (1)創(chuàng)建一個(gè)名為stu_pr的存儲(chǔ)過程,該存儲(chǔ)過程能查詢出051班學(xué)生的所有資料,包括學(xué)生的基本信息、學(xué)生的選課信息(含未選課同學(xué)的信息)。要求在創(chuàng)建存儲(chǔ)過程前請(qǐng)判斷該存儲(chǔ)過程是否已創(chuàng)建,若已創(chuàng)建則先刪除,并給出“已刪除!”信息,否則就給出“不存在,可創(chuàng)建!”的信息。

      if exists(select name from sysobjects where name='stu_pr'and type='p')begin print '已刪除!' drop procedure stu_pr end else print '不存在,可創(chuàng)建!' go create procedure stu_pr as select * from Student_20103322 left outer join SC_20103322

      on(Student_20103322.Sno=SC_20103322.Sno)left outer join Course_20103322 on(Course_20103322.Cno=SC_20103322.Cno)where classno='051' 1

      exec stu_pr

      2、創(chuàng)建帶參數(shù)的存儲(chǔ)過程

      (1)創(chuàng)建一個(gè)名為stu_proc1的存儲(chǔ)過程,查詢某系、某姓名的學(xué)生的學(xué)號(hào)、姓名、年齡,選修課程名、成績。系名和姓名在調(diào)用該存儲(chǔ)過程時(shí)輸入,其默認(rèn)值分別為“%”與“林%”。執(zhí)行該存儲(chǔ)過程,用多種參數(shù)加以測(cè)試。

      if exists(select name from sysobjects where name='stu_proc1' and type='p')begin

      print '已刪除!' drop procedure stu_proc1 end else

      print '不存在,可創(chuàng)建!' go create procedure stu_proc1 @Sdept char(8)='%',@Sname varchar(8)='林%' as select Sdept,Student_20103322.Sno,Sname,DATEDIFF(YEAR,Birth,GETDATE())age,Cname,Grade from Student_20103322,SC_20103322,Course_20103322 where Student_20103322.Sno=SC_20103322.Sno and Course_20103322.Cno=SC_20103322.Cno and Sdept like @Sdept and Sname like @Sname

      execute stu_proc1 '計(jì)算機(jī)系','林紅' 3

      execute stu_proc1 '信息安全','胡光璟'

      (2)創(chuàng)建一個(gè)名為Student_sc的存儲(chǔ)過程,可查詢出某段學(xué)號(hào)的同學(xué)的學(xué)號(hào)、姓名、總成績。(學(xué)號(hào)起始號(hào)與終止號(hào)在調(diào)用時(shí)輸入,可設(shè)默認(rèn)值)。執(zhí)行該存儲(chǔ)過程。if exists(select name from sysobjects where name='Student_sc'and type='p')begin print '已刪除!' drop procedure student_sc end else print '不存在,可創(chuàng)建!' go create procedure Student_sc @Sno1 char(8),@Sno2 char(8)as select Student_20103322.Sno,Sname,SUM(Grade)總成績 from Student_20103322,SC_20103322,Course_20103322 where Student_20103322.Sno=SC_20103322.Sno and Course_20103322.Cno=SC_20103322.Cno and Student_20103322.Sno>=@Sno1 and Student_20103322.Sno<=@Sno2 group by Student_20103322.Sno,Sname

      execute Student_sc '20110000','20110003' 5

      3、創(chuàng)建帶輸出參數(shù)的存儲(chǔ)過程

      (1)創(chuàng)建一個(gè)名為Course_sum的存儲(chǔ)過程,可查詢某門課程考試的總成績??偝煽兛梢暂敵觯员氵M(jìn)一步調(diào)用。

      if exists(select name from sysobjects where name='Course_sum'and type='p')begin print '已刪除!' drop procedure Course_sum end else print '不存在,可創(chuàng)建!' go create procedure Course_sum @Cname varchar(20),@sum int output as select @sum=sum(Grade)from SC_20103322,Course_20103322 where Course_20103322.Cno=SC_20103322.Cno and Cname=@Cname

      group by SC_20103322.Cno,Cname

      declare @ping int exec Course_sum '高數(shù)',@ping output print '高數(shù)的考試總成績?yōu)椋?+cast(@ping as varchar(20))

      (2)創(chuàng)建一執(zhí)行該存儲(chǔ)過程的批處理,要求當(dāng)總成績小于100時(shí),顯示信息為:“XX課程的總成績?yōu)椋篨X,其總分未達(dá)100分”。超過100時(shí),顯示信息為:“XX課程的總成績?yōu)椋篨X”。

      declare @sum int

      declare @Cname varchar(20)Exec Course_sum @cname,@sum out begin

      if @sum <100 print cast(@cname as varchar)+'課程的總成績?yōu)?'+cast(@sum as varchar)+ ',其總分未達(dá)分'

      else

      print cast(@cname as varchar)+'課程的總成績?yōu)?'+cast(@sum as varchar)end

      declare @sum int

      declare @Cname varchar(20)set @Cname='高數(shù)' Exec Course_sum @cname,@sum out begin

      if @sum <100 print cast(@cname as varchar)+'課程的總成績?yōu)?'+cast(@sum as varchar)+ ',其總分未達(dá)分'

      else

      print cast(@cname as varchar)+'課程的總成績?yōu)?'+cast(@sum as varchar)end

      4、創(chuàng)建帶重編譯及加密選項(xiàng)的存儲(chǔ)過程

      創(chuàng)建一個(gè)名為update_sc、并帶重編譯及加密選項(xiàng)的存儲(chǔ)過程,可更新指定學(xué)號(hào)、指定課程號(hào)的學(xué)生的課程成績。(學(xué)號(hào)、課程號(hào)由調(diào)用時(shí)輸入)

      if exists(select name from sysobjects where name='update_sc'and type='p')begin print '已刪除!' drop procedure update_sc end else print '不存在,可創(chuàng)建!' go create procedure update_sc

      @sno char(8),@cno char(3),@grade tinyint with RECOMPILE , ENCRYPTION as update SC_20103322 set Grade=@grade

      where Sno=@sno and Cno=@cno

      declare @sno char(8),@cno char(3),@grade tinyint set @sno='20103322' set @cno='003' set @grade='100' exec update_sc @sno,@cno,@grade begin print cast(@sno as varchar)+'的'+cast(@cno as varchar)+'課程成績?yōu)椋?+cast(@grade as varchar)end

      5、使用T-SQL語句管理和維護(hù)存儲(chǔ)過程

      (1)使用sp_helptext查看存儲(chǔ)過程Student_sc的定義腳本

      exec sp_helptext student_sc

      (2)使用select語句查看Student_sc存儲(chǔ)過程的定義腳本(提示:通過查詢表sysobjects和表syscomments)

      select *

      from sysobjects,syscomments where name = 'Student_sc'

      (3)將存儲(chǔ)過程stu_pr改為查詢學(xué)號(hào)為2011001的學(xué)生的詳細(xì)資料。

      alter procedure stu_pr as select * from Student_20103322 left outer join SC_20103322 on(Student_20103322.Sno=SC_20103322.Sno)left outer join Course_20103322 on(Course_20103322.Cno=SC_20103322.Cno)where Student_20103322.Sno='2011001'

      (4)刪除存儲(chǔ)過程stu_pr。

      drop procedure stu_pr

      6、使用SQL Server Management Studio管理存儲(chǔ)過程

      (1)在SQL Server Management Studio中重新創(chuàng)建剛刪除的存儲(chǔ)過程stu_pr create procedure stu_pr as begin select * from Student_20103322 left outer join SC_20103322 on(Student_20103322.Sno=SC_20103322.Sno)left outer join Course_20103322 on(Course_20103322.Cno=SC_20103322.Cno)where Student_20103322.Sno='2011001' end

      (2)查看存儲(chǔ)過程stu_pr,并將該過程修改為查詢051班女生的所有資料。

      ALTER procedure [dbo].[stu_pr] as begin select * from Student_20103322 left outer join SC_20103322 on(Student_20103322.Sno=SC_20103322.Sno)left outer join Course_20103322 on(Course_20103322.Cno=SC_20103322.Cno)where Student_20103322.Sno='2011001' and Sex='女' end

      (3)刪除存儲(chǔ)過程stu_pr

      【完】

      第四篇:網(wǎng)絡(luò)數(shù)據(jù)庫講稿(存儲(chǔ)過程)

      網(wǎng)絡(luò)數(shù)據(jù)庫講稿

      4/15/2013

      存儲(chǔ)過程

      P177

      一、什么是存儲(chǔ)過程

      1.是一個(gè)過程,與其它語言中的過程幾乎完全相同。它們可以接收參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值。2.存儲(chǔ)在服務(wù)器上的數(shù)據(jù)庫中,創(chuàng)建時(shí)進(jìn)行編譯。3.在后臺(tái)運(yùn)行,其主要功能是對(duì)數(shù)據(jù)庫操作。4.可以在一個(gè)存儲(chǔ)過程內(nèi)調(diào)用其它存儲(chǔ)過程。

      二、.存儲(chǔ)過程的分類

      分為三類:用戶自定義存儲(chǔ)過程(普通存儲(chǔ)過程),擴(kuò)展存儲(chǔ)過程,系統(tǒng)存儲(chǔ)過程。

      三、創(chuàng)建普通存儲(chǔ)過程

      CREATE PROCEDURE命令 例: 1.CREATE PROCEDURE 檢索 @XH CHAR(6)AS SELECT * FROM 成績 WHERE 學(xué)號(hào)=@XH 2.在成績表中添加一條記錄,如果成績及格,還要在學(xué)生表中增加學(xué)分。

      CREATE PROCEDURE 輸入考試分?jǐn)?shù)

      @XH CHAR(6),@KCH CHAR(8),@FS DECIMAL(4,1)AS IF EXISTS(SELECT * FROM 學(xué)生 WHERE 學(xué)號(hào)=@XH)BEGIN

      INSERT 成績 VALUES(@XH,@KCH,@FS)

      IF @FS>=60

      UPDATE 學(xué)生 SET 已修學(xué)分

      =已修學(xué)分+(SELECT 學(xué)分 FROM 課程 WHERE 課程編號(hào)=@KCH)

      WHERE 學(xué)號(hào)=@XH END ELSE PRINT '無此學(xué)號(hào)'+@XH

      3.在成績表中刪除指定學(xué)號(hào)和課程的記錄,如果所刪的分?jǐn)?shù)及格,還要在學(xué)生表中減去對(duì)應(yīng)的學(xué)分。CREATE PROCEDURE 刪除考試分?jǐn)?shù)

      @XH CHAR(6),@KCH CHAR(8)AS DECLARE @FS DECIMAL(4,1)SET @FS=(SELECT MAX(分?jǐn)?shù))FROM 成績

      網(wǎng)絡(luò)數(shù)據(jù)庫講稿

      4/15/2013 WHERE 學(xué)號(hào)=@XH AND 課程編號(hào)=@KCH)IF @FS>0 DELETE FROM 成績 WHERE 學(xué)號(hào)=@XH AND 課程編號(hào)=@KCH IF @FS>=60 UPDATE 學(xué)生 SET 已修學(xué)分

      =已修學(xué)分-(SELECT 學(xué)分 FROM 課程 WHERE 課程編號(hào)=@KCH)

      WHERE 學(xué)號(hào)=@XH

      四、執(zhí)行存儲(chǔ)過程

      P183 例: EXECUTE 檢索 '200202' 檢索 '200202' INSERT 成績0 EXECUTE 檢索 '200202' EXECUTE 輸入考試分?jǐn)?shù) '200209','W2020610',56 EXECUTE 輸入考試分?jǐn)?shù) '200209','W2020610',88 EXECUTE 輸入考試分?jǐn)?shù) '200209','L2030506',90 如果執(zhí)行存儲(chǔ)過程是批處理中的第一條語句,則可以省略EXEC。

      五、參數(shù)

      P185 1.輸入?yún)?shù) 按位置傳遞 用參數(shù)名傳遞 使用默認(rèn)值

      2.輸出參數(shù)

      P187 虛參和實(shí)參后邊都要加上OUTPUT。例P187: CREATE PROC 班級(jí)人數(shù)@N INT OUTPUT,@CID CHAR(6)='200201' AS SELECT @N=COUNT(*)FROM 學(xué)生WHERE 班級(jí)=@CID

      DECLARE @M INT EXEC 班級(jí)人數(shù)@M OUTPUT,'200208' SELECT @M

      DECLARE @M INT EXEC 班級(jí)人數(shù)@M OUTPUT SELECT @M

      六、查看存儲(chǔ)過程信息

      select * from sys.sql_modules SELECT OBJECT_DEFINITION(OBJECT_ID('檢索'))

      網(wǎng)絡(luò)數(shù)據(jù)庫講稿

      4/15/2013 sp_helptext 檢索

      七、修改存儲(chǔ)過程

      八、刪除存儲(chǔ)過程

      1.在對(duì)象資源管理器或查詢窗口中刪除 2.用命令DROP PROCEDURE刪除。

      第五篇:mysql 5.0存儲(chǔ)過程學(xué)習(xí)總結(jié)

      mysql 5.0存儲(chǔ)過程學(xué)習(xí)總結(jié)

      一.創(chuàng)建存儲(chǔ)過程 1.基本語法:

      create procedure sp_name()begin end 2.參數(shù)傳遞

      二.調(diào)用存儲(chǔ)過程

      1.基本語法:call sp_name()注意:存儲(chǔ)過程名稱后面必須加括號(hào),哪怕該存儲(chǔ)過程沒有參數(shù)傳遞

      三.刪除存儲(chǔ)過程 1.基本語法:

      drop procedure sp_name// 2.注意事項(xiàng)

      (1)不能在一個(gè)存儲(chǔ)過程中刪除另一個(gè)存儲(chǔ)過程,只能調(diào)用另一個(gè)存儲(chǔ)過程

      四.區(qū)塊,條件,循環(huán) 1.區(qū)塊定義,常用 begin end;也可以給區(qū)塊起別名,如: lable:begin end lable;可以用leave lable;跳出區(qū)塊,執(zhí)行區(qū)塊以后的代碼

      2.條件語句 3.循環(huán)語句 :while循環(huán) loop循環(huán) repeat until循環(huán) repeat until循環(huán)

      五.其他常用命令

      1.show procedure status 顯示數(shù)據(jù)庫中所有存儲(chǔ)的存儲(chǔ)過程基本信息,包括所屬數(shù)據(jù)庫,存儲(chǔ)過程名稱,創(chuàng)建時(shí)間等 2.show create procedure sp_name 顯示某一個(gè)存儲(chǔ)過程的詳細(xì)信息

      mysql存儲(chǔ)過程基本函數(shù)

      一.字符串類

      CHARSET(str)//返回字串字符集 CONCAT(string2 [,...])//連接字串

      INSTR(string ,substring)//返回substring首次在string中出現(xiàn)的位置,不存在返回0 LCASE(string2)//轉(zhuǎn)換成小寫

      LEFT(string2 ,length)//從string2中的左邊起取length個(gè)字符 LENGTH(string)//string長度

      一起推論壇

      一起推論壇004km.cn

      下載[轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版)word格式文檔
      下載[轉(zhuǎn)載]grails調(diào)用存儲(chǔ)過程(Grails: calling a stored procedure)(范文模版).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        課題:SQLServer存儲(chǔ)過程返回值總結(jié)

        SQLServer存儲(chǔ)過程返回值總結(jié) 1. 存儲(chǔ)過程沒有返回值的情況(即存儲(chǔ)過程語句中沒有return之類的語句)用方法 int count = ExecuteNonQuery(..)執(zhí)行存儲(chǔ)過程其返回值只有兩種......

        存儲(chǔ)過程的優(yōu)缺點(diǎn)個(gè)人總結(jié)

        優(yōu)點(diǎn) 1.在生產(chǎn)環(huán)境下,可以通過直接修改存儲(chǔ)過程的方式修改業(yè)務(wù)邏輯(或bug),而不用重啟服務(wù)器。但這一點(diǎn)便利被許多人濫用了。有人直接就在正式服務(wù)器上修改存儲(chǔ)過程,而沒有經(jīng)過......

        數(shù)據(jù)庫軟件程序開發(fā)的存儲(chǔ)調(diào)用指令設(shè)計(jì)論文(合集)

        摘 要:數(shù)據(jù)庫軟件是以計(jì)算機(jī)平臺(tái)為基礎(chǔ),針對(duì)數(shù)據(jù)存儲(chǔ)以及調(diào)用設(shè)計(jì)的一款智能化軟件,其使用非常方便,智能化和集成化的能力也非常強(qiáng)。對(duì)于現(xiàn)有的技術(shù)而言,如何對(duì)數(shù)據(jù)庫軟件程序開......

        第8課 教小海龜用新命令 調(diào)用過程-教案

        XX學(xué)校2017-2018年度五年級(jí)下學(xué)期信息技術(shù)課程 第三冊(cè)(下)教案------科任老師:XX 第八課 教小海龜用新命令—調(diào)用過程 一、教學(xué)內(nèi)容 認(rèn)識(shí)Logo調(diào)用過程,掌握Logo畫保存圖形方......

        第5章 視圖、存儲(chǔ)過程和用戶自定義函數(shù)復(fù)習(xí)題范文

        第5章 視圖、存儲(chǔ)過程和用戶自定函數(shù) 1.什么是基本表?什么是視圖?兩者的區(qū)別和聯(lián)系是什么? 答: 基本表是本身獨(dú)立存在的表,在 sQL 中一個(gè)關(guān)系就對(duì)應(yīng)一個(gè)表。視圖是從一個(gè)或幾個(gè)基......

        SQL Sever 2005教案第13章 存儲(chǔ)過程及自定義函數(shù)

        什么是存儲(chǔ)過程,在存儲(chǔ)在服務(wù)器上的T-SQL語句的命名集合,是封裝性任務(wù)的方法,支持變量及條件的編程。 SQL Server的存儲(chǔ)過程與其他編程語言中的過程(包括函數(shù))類似,可以包含數(shù)據(jù)......

        sql 數(shù)據(jù)庫 實(shí)驗(yàn)九:T-SQL語言、存儲(chǔ)過程及數(shù)據(jù)庫的安全性

        實(shí)驗(yàn)九:T-SQL語言、存儲(chǔ)過程及數(shù)據(jù)庫的安全性 一、實(shí)驗(yàn)?zāi)康?1. 掌握數(shù)據(jù)變量的使用; 2. 掌握各種控制語句及系統(tǒng)函數(shù)的使用; 3. 掌握存儲(chǔ)過程的實(shí)現(xiàn); 4. 掌握混合模式下數(shù)據(jù)庫用......