[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
)
[C#对Oracle操作]C#操作调用Orcale存储过程有参数的更多相关文章
- Jfinal调用Orcale存储过程
因为项目需要,最近一直在学习Orcale存储过程,但发现在网上很少有人写Jave中Jfinal调用Orcale存储过程的文章,即使有也是几年前的,很多都不能用,今天给大家分享一段Jfinal调用Orc ...
- oracle数据库误操作把表删除了,怎样恢复
一:表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有:1.从flash back里查询被删除的表 select * from re ...
- Oracle闪回操作
Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') fr ...
- C#全能数据库操作类及调用示例
C#全能数据库操作类及调用示例 using System; using System.Data; using System.Data.Common; using System.Configuratio ...
- ORACLE数据库误操作执行了DELETE,该如何恢复数据?
ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后 ...
- 请教怎么查询ORACLE的历史操作记录!
请问如何查询ORACLE的历史操作记录!!!!!我用的是linux oracle 11g r2,想查一下前几天的数据库的历史操作记录,例如对表的insert,delete,update等等的操作记录, ...
- eclipse利用sql语句对Oracle数据库进行操作
对Oracle数据库执行操作的sql语句中表名和列名都需用英文双引号("")括起来. 注(\为转义符) 1.插入数据 sql = "insert into \" ...
- Oracle数据库基础操作语法
转载自:https://www.cnblogs.com/fallen-seraph/p/10685997.html 一.登录Oracle数据库 首先运行Oracle数据库: 默认的有两个账号: 管理员 ...
- oracle中job定时调用存储过程的实例
使用job模拟定时从元数据表中抽取指定数据进入目标表的过程. 一.创建元数据表 --create table test_origianl create table test_original_data ...
随机推荐
- genymotion模拟器访问本地服务器
测试环境为:Ubuntu + android studio + genymotion + wifi 我用模拟器访问电脑上的服务器,需要使用的IP为10.0.3.2,其他的什么10.0.2.2和10.0 ...
- 关于raid的理解
缘起 公司部署业务的时候,6块盘需要做raid,以前还没有用过所以不知道,临时才去百度看了一下相关知识. 部署 当前可以用软raid与硬raid,软raid系统上建立,占用CPU与IO资源;硬RAID ...
- iOS开发之APP上线
APP 上线有两种途径: 一种是 Xcode->openDeveloperTool->applicationLoader,这种打开后登陆appleID就可以选取并且交付您的应用程序了.这种 ...
- python 后台爆破工具(多线程)
非阻塞 q.put(item) 写入队列,timeout等待时间 q.put_nowait(item) 相当q.put(item, False) threads多线程 首先导入threadin ...
- ios常见的页面传值方式
iOS页面间的传值细分有很多种,基本的传值方式有三种:委托Delegate传值.通知NSNotification传值.Block传值,其他在项目中可能会遇到的还有:UserDefault或文件方式传值 ...
- UVA 572 (dfs)
题意:找出一块地有多少油田.'@'表示油田.找到一块就全部标记. #include<cstdio> #define maxn 110 char s[maxn][maxn]; int n,m ...
- 强制span不换行
对于上一篇提到的overflow的问题我好像搞懂一些了.事情大概是这个样子的:如果用了float属性,那么元素就会脱离文本的束缚,无法无天起来,这肯定是猿类无法忍受的.要想让他们乖乖就范,要么用清除浮 ...
- InfoPi运行机制介绍
整体工作框架 文件目录结构 数据库设计 程序开发框架 注:图片可能被自动缩小,可以另存看大图 1.整体工作框架. 通用户关注绿色竖线左侧的内容即可 2.InfoPi的文件目录结构. 请留意一下cfg目 ...
- linux 删除进程的多种方法
kill pid kill -9 pid kill -15 pid pkill -f *.php kill -s 9 pid
- Mysql快速删除表中重复的数据
表结构 CREATE TABLE T_VENDOR ( ID ) NOT NULL AUTO_INCREMENT COMMENT 'ID', COUNTRY ) DEFAULT NULL COMMEN ...