1.创建过程SP_STUDENT
2.在SQL Plus中调用过程SP_STUDENT
3.在VS程序中调用过程SP_STUDENT
4.创建函数FN_ADDONE
5.调用函数FN_ADDONE
6.删除函数FN_ADDONE
============================
1.创建过程SP_STUDENT
---------------------
管理器-方案-过程-创建-相关代码的编写
或者直接在SQL Plus中编写
相关代码如下:
SQL> CREATE PROCEDURE SP_STUDENT
2 (
3 SID IN VARCHAR2,
4 SNAME IN VARCHAR2
5 )
6 AS
7 BEGIN
8 INSERT INTO STUDENT VALUES(SID,SNAME);
9 END SP_STUDENT;
10 /
过程已创建。
SQL>
2.在SQL Plus中调用过程SP_STUDENT
------------------------------
相关代码如下:
SQL> EXECUTE USER1_ADB.SP_STUDENT ('12','BB');
PL/SQL 过程已成功完成。
SQL>
3.在VS程序中调用过程SP_STUDENT
------------------------------
protected void btn_CallSP_Click(object sender, EventArgs e)
{
//ADB为数据库名
string strConn = "data source=ADB;user id=USER1_ADB;password=user1test";
try
{
using (OracleConnection myConn = new OracleConnection(strConn))
{
OracleCommand myComm = new OracleCommand("SP_STUDENT", myConn);
myComm.CommandType = CommandType.StoredProcedure;
myComm.Parameters.Add("SID", "88");
myComm.Parameters.Add("SNAME", "AA");
myConn.Open();
myComm.ExecuteNonQuery();
Response.Write("Insert OK");
}
}
catch (OracleException ex)
{
ex.ToString();
}
}
4.创建函数FN_ADDONE
--------------------
SQL> CREATE OR REPLACE FUNCTION FN_ADDONE(
2 ANUM IN NUMBER ) RETURN NUMBER
3 IS
4 BNUM NUMBER ;
5 BEGIN
6 BNUM := ANUM + 1 ;
7 RETURN BNUM;
8 END;
9 /
函数已创建。
5.调用函数FN_ADDONE
--------------------
SQL> SET SERVEROUTPUT ON
SQL> DECLARE CNUM NUMBER;
2 BEGIN
3 CNUM := USER1_ADB.FN_ADDONE(3);
4 DBMS_OUTPUT.PUT_LINE('CNUM = ' || CNUM);
5 END;
6 /
CNUM = 4
PL/SQL 过程已成功完成。
6.删除函数FN_ADDONE
--------------------
SQL> DROP FUNCTION USER1_ADB.FN_ADDONE;
函数已丢弃。