CREATE PROC WSP_CUSTOMERS_U1 ( @CUSTOMERID NCHAR(5) , @CONTACTNAME NVARCHAR(30) ) AS BEGIN UPDATE CUSTOMERS SET CONTACTNAME = @CONTACTNAME WHERE CUSTOMERID = @CUSTOMERID END
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace BANANA.Web.Framework.Test.jmson { public partial class sql_update : BANANA.Web.BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { base.ExecuteNonQuery( "WSP_CUSTOMERS_U1" // 첫 번째 전달변수는 프로시저명을 입력해 줍니다. , "BLAUS" // 두번째부터는 프로시저의 변수들에 대한 값들을 순차적으로 입력하시면 됩니다. , "Hanna Moos - 2" ); MessageBox.Show("UPDATE 문을 성공하였습니다."); } catch (Exception err) { // err.HelpLink에는 프로시저 실행구문이 있습니다. // SQL Profiler를 실행하지 않아도, 사용자가 실행한 프로시저 및 전달 변수들을 확인하실 수 있습니다. MessageBox.Show(err.HelpLink + "<br />" + err.Message , "Error" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace BANANA.Web.Framework.Test.jmson { public partial class sql_update : BANANA.Web.BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { base.ExecuteNonQuery( // 실행하실 UPDATE문을 하나의 string 형태로 전달하시면 됩니다. "UPDATE CUSTOMERS SET CONTACTNAME = 'Hanna Moos - 2' WHERE CUSTOMERID = 'BLAUS';" ); MessageBox.Show("UPDATE 문을 성공하였습니다."); } catch (Exception err) { MessageBox.Show(err.Message , "Error" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } } } } }
-- Package Spec 정의 CREATE OR REPLACE PACKAGE PKG_EMPLOYEES AS TYPE T_CURSOR IS REF CURSOR; PROCEDURE WSP_EMPLOYEES_R1 ( I_LASTNAME IN VARCHAR2 , I_EMPLOYEEID IN NUMBER , O_EMPLOYEES OUT T_CURSOR , O_CUSTOMERS OUT T_CURSOR ); PROCEDURE WSP_EMPLOYEES_U1 ( I_EMPLOYEEID IN NUMBER , I_FIRSTNAME IN VARCHAR2 ); END PKG_EMPLOYEES;
-- Package Body 정의 CREATE OR REPLACE PACKAGE BODY PKG_EMPLOYEES AS PROCEDURE WSP_EMPLOYEES_R1 ( I_LASTNAME IN VARCHAR2 , I_EMPLOYEEID IN NUMBER , O_EMPLOYEES OUT T_CURSOR , O_CUSTOMERS OUT T_CURSOR ) IS BEGIN -- EMPLOYEES OPEN O_EMPLOYEES FOR SELECT * FROM EMPLOYEES WHERE LASTNAME LIKE '%'||I_LASTNAME||'%' AND EMPLOYEEID > I_EMPLOYEEID; -- CUSTOMERS OPEN O_CUSTOMERS FOR SELECT * FROM CUSTOMERS; END WSP_EMPLOYEES_R1; PROCEDURE WSP_EMPLOYEES_U1 ( I_EMPLOYEEID IN NUMBER , I_FIRSTNAME IN VARCHAR2 ) IS BEGIN UPDATE EMPLOYEES SET FIRSTNAME = I_FIRSTNAME WHERE EMPLOYEEID = I_EMPLOYEEID; END WSP_EMPLOYEES_U1; END PKG_EMPLOYEES;
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace BANANA.Web.Framework.Test.jmson { public partial class ExecuteNonQuery2 : BANANA.Web.BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { // Input 파라미터를 Dictionary 개체 형식으로 추가해 줍니다. Dictionary<object, object> _dic = new Dictionary<object, object>(); _dic.Add("I_EMPLOYEEID", 3); _dic.Add("I_FIRSTNAME", "John"); base.ExecuteNonQuery( "PKG_EMPLOYEES.WSP_EMPLOYEES_U1" , _dic ); MessageBox.Show("Oracle 업데이트가 성공!"); } catch (Exception err) { MessageBox.Show(err.Message , "Error" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections; namespace BANANA.Web.Framework.Test.jmson { public partial class ExecuteNonQuery2 : BANANA.Web.BasePage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { try { base.ExecuteNonQuery( "UPDATE EMPLOYEES SET FIRSTNAME = 'John' WHERE EMPLOYEEID = 3;" ); MessageBox.Show("Oracle 업데이트가 성공!"); } catch (Exception err) { MessageBox.Show(err.HelpLink , "Error" , MessageBox.MessageBoxType.Alert , MessageBox.MessageBoxIcon.Error ); } } } } }