[C#对Oracle操作]C#操作调用Orcale存储过程有参数

/// <summary>
        /// 获取ERP固定资产计提数据
        /// </summary>
        /// <param name="strCompanyCode">公司代码</param>
        /// <param name="strClient">应用环境</param>
        /// <param name="strLanguage">语言</param>
        /// <param name="strRealDeprarea">账套代码:‘01’、‘02’、‘03’</param>
        /// <param name="strFiscalYear">会计年度</param>
        /// <param name="strMonth">会计月度:‘mm’</param>
        /// <returns>DataTable数据集</returns>
        public static DataTable getData(string strCompanyCode, string strClient, string strLanguage, string strRealDeprarea, string strFiscalYear, string strMonth)
        {
            OracleConnection myOracleConnection = null;
            try
            {

                DataTable dt = new DataTable();
                myOracleConnection = new OracleConnection();
                myOracleConnection.ConnectionString = ConfigurationManager.ConnectionStrings["FTERP"].ConnectionString;
                myOracleConnection.Open();
                OracleCommand cmd = new OracleCommand("FXA_MAINVALUEINFO", myOracleConnection);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("v_companycode", OracleType.Char).Direction = ParameterDirection.Input; //指明传入的参数是给Oracle存储过程用的
                cmd.Parameters["v_companycode"].Value = strCompanyCode;
                cmd.Parameters.Add("v_client", OracleType.Char).Direction = ParameterDirection.Input;
                cmd.Parameters["v_client"].Value = strClient;
                cmd.Parameters.Add("v_language", OracleType.Char).Direction = ParameterDirection.Input;
                cmd.Parameters["v_language"].Value = strLanguage;
                cmd.Parameters.Add("v_realdeprarea", OracleType.Char).Direction = ParameterDirection.Input;
                cmd.Parameters["v_realdeprarea"].Value = strRealDeprarea;
                cmd.Parameters.Add("v_fiscalyear", OracleType.Char).Direction = ParameterDirection.Input;
                cmd.Parameters["v_fiscalyear"].Value = strFiscalYear;
                cmd.Parameters.Add("v_postperiod", OracleType.Char).Direction = ParameterDirection.Input;
                cmd.Parameters["v_postperiod"].Value = strMonth;
                cmd.Parameters.Add("v_returnvalue", OracleType.Float).Direction = ParameterDirection.Output;
                OracleDataAdapter da = new OracleDataAdapter(cmd);
                da.Fill(dt);
                string eval = cmd.Parameters["v_returnvalue"].Value.ToString();
                //myOracleConnection.Close();
                DataTable dtResult = dt.Clone();
                foreach (DataRow dr in dt.Rows)
                {
                    dtResult.Rows.Add(dr.ItemArray);
                }
                return dtResult;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
            finally
            {
                if (myOracleConnection.State == ConnectionState.Open)
                {
                    myOracleConnection.Close();
                }
            }

        }
如下是Oracle的存储过程

CREATE OR REPLACE PROCEDURE BZREPDB.FXA_MAINVALUEINFO (
   v_companycode    IN     CHAR,
   v_client         IN     CHAR,
   v_language       IN     CHAR,
   v_realdeprarea   IN     CHAR,
   v_fiscalyear     IN     CHAR,
   v_postperiod     IN     CHAR,
   v_returnvalue       OUT NUMBER
)
时间: 2024-10-13 21:18:43

[C#对Oracle操作]C#操作调用Orcale存储过程有参数的相关文章

Jfinal调用Orcale存储过程

因为项目需要,最近一直在学习Orcale存储过程,但发现在网上很少有人写Jave中Jfinal调用Orcale存储过程的文章,即使有也是几年前的,很多都不能用,今天给大家分享一段Jfinal调用Orcale存储过程的代码,亲测有效.废话不多说直接上代码: public void runCountProc() { Object o = Db.execute(new ICallback() { @Override public Object call(Connection conn) throws

Oracle 数据库常用操作语句大全

Oracle 数据库常用操作语句大全 一.Oracle数据库操作 1.根据删除的时间查询出被删除的数据 select * from szdj_work_plan AS OF TIMESTAMP TO_TIMESTAMP('2018-1-19 16:51:37', 'yyyy-mm-dd hh24:mi:ss') where subject='测试一下删除0119' 1.表中唯一的最大的值 select hibernate_sequence.nextval from dual 1.创建数据库 cr

ORACLE 导入导出操作

1.导入命令: imp userId/[email protected] full=y  file=D:\data\xxx.dmp ignore=y 2.导出命令 exp userId/[email protected] file=d:\dkj\test.dmp tables=(wf_test) exp userId/[email protected] buffer=50000000 file=D:\data\xxx.dmp owner=userId 1.在安装完ORACLE 11g后,在sql

oracle数据库误操作把表删除了,怎样恢复

一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询被删除的表 select * from recyclebin 2.执行表的恢复 flashback table tb to before drop,这里的tb代表你要恢复的表的名称. 二:表数据恢复 对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有: 1.先从flashback_transact

什么是oracle自动恢复操作

这是由系统进行的恢复.无需人的管理和操作.一般当系统由于突然掉电而出现故障时用这种方法.当再次启动数据库就会进行自动恢复.    不像简单的DOS系统,oracle系统在运行时有许多事务要处理,并且存在许多进程.无论此时人是否对系统进行了操作,这些事务和进程都是存在并运行着的.因此,oracle系统非常复杂,绝不允许中途突然关电源,那样会使系统受到损害.    但是有时并非人自愿的,电源不好而突然掉电,或是未通知的突然停电,而又没有使用不间断电源UPS,则此时数据库系统将难免受到损害.由于掉电,

oracle 12c 初步操作

查看是否为cdb SQL> select name,cdb,open_mode,con_id from v$database; NAME CDB OPEN_MODE CON_ID --------------------------- --------- ------------------------------------------------------------ ---------- ORCL12C YES READ WRITE 0 查看当前容器 SQL> show con_nam

Oracle表的操作

--创建表 CREATE [GLOBAL TEMPORARY] TABLE table_name( coloum_name TYPE [CONSTRAINT constraint_def DEFAULT default_exp] [,coloum_name TYPE [CONSTRAINT constraint_def DEFAULT default_exp] ...] ) [ON COMMIT {DELETE | PRESERVE} ROWS] TABLESPACE tab_space; /*

ORACLE清空回收站操作

ORACLE清空回收站操作 a.查看那些对象被删除至回收站 select * from user_recyclebin;b.清空回收站中的某个表 purge table orgin_table_name; purge index orgin_index_name;c.清空整个回收站 purge recycle;d.删除表不进入回收站 drop table table_name purge;e.从回收站恢复被删除的表   flashback table table_name to before d

oracle中job定时调用存储过程的实例

使用job模拟定时从元数据表中抽取指定数据进入目标表的过程. 一.创建元数据表 --create table test_origianl create table test_original_data( id number(10,2) primary key, name varchar2(200), descCont varchar2(100), dateType char(5) ); 二.元数据表中插入数据 insert into test_original_data values(2.9,'