MSDAORA Sql的参数传递方法

摘要:
Sql格式如下:INSERT INTOTS_ ITEMVALUESSELECITEM_ CDFROMTS_ ITEMWHERITEM_ CDBETWEEN:ITEMFROMAND:ITEMTO Sql中的这些特殊参数名称是MSDAORA的参数传输特性。4: OracleParameters集合中的参数数必须等于命令文本中的命名参数数,否则将用于Oracle。NETFramework数据提供程序引发错误。缺点:1.数据类型与Oracle数据库不一致。附件是此DBHelper(简化版):MSORADBHelper。前一个是OLEDBSql的参数传递方法。下一个是ODP.NetSql的参数传递方法

MSDAORA Sql的参数传递方法

  MSDAORA及Oracle .NET Framework 数据提供程序。Oracle .NET Framework 数据提供程序支持使用 Oracle 客户端软件提供的 Oracle 调用接口 (OCI) 访问 Oracle 数据库。该数据提供程序设计的功能与 SQL Server、OLE DB 和 ODBC 的 .NET Framework 数据提供程序的功能类似。要使用 Oracle .NET Framework 数据提供程序,应用程序必须如下所示引用 System.Data.OracleClient 命名空间。

  使用Sql形式如下:

INSERT INTO TS_ITEM(ITEM_CD) VALUES(:ITEM_CD)
SELECT ITEM_CD  FROM TS_ITEM WHERE ITEM_CD BETWEEN :ITEMFROM AND :ITEMTO

  Sql中的【:ITEM_CD,:ITEMFROM,:ITEMTO】这些特殊的参数名就是MSDAORA的参数传递特点。

  1:参数名不区分大小写。

  2:SQL 语句传递参数时不支持问号 (?) 占位符,必须使用命名的参数。

    3:SQL 语句中使用命名的参数时,参数名前面必须有一个冒号 (:)。在存储过程或在代码的其他地方引用命名的参数时(例如,将 OracleParameter 对象添加到 Parameters 属性时),请不要在命名的参数前加上冒号 (:)。数据提供程序会自动提供冒号。

  4:OracleParameters集合中参数的数量必须等于命令文本中命名参数的数量,否则用于 Oracle 的 .NET Framework 数据提供程序会引发错误。

应用举例:

        /// <summary>
        ///参数追加
        /// </summary>
        /// <param name="valName">参数名</param>
        /// <param name="var">参数値</param>
        /// <param name="valType">参数类型</param>
        public static void AddDbParameter(string valName, object var, OracleType valType)
        {
            OracleParameter p = new OracleParameter();
            p.ParameterName = valName;
            p.Direction = ParameterDirection.Input;
            p.OracleType = valType;
            p.IsNullable = true;
            p.Value = var;
            DbCommand.Parameters.Add(p);
        }
        /// <summary>
        /// 数据取得
        /// </summary>
        /// <param name="i_ItemFrom">項目From</param>
        /// <param name="i_ItemTO">項目To</param>
        /// <returns></returns>
        public static DataTable GetData(string i_ItemFrom, string i_ItemTO)
        {
            MsOracleParModel.PreProcess();
            MsOracleParModel.PrepareDbSql(DBSql.MsORASelSql);
            MsOracleParModel.AddDbParameter("ITEMFROM", i_ItemFrom, OracleType.VarChar);
            MsOracleParModel.AddDbParameter("ITEMTO", i_ItemTO, OracleType.VarChar);

            return MsOracleParModel.GetDataSet("M_ITEM").Tables[0];
        }

    存储过程也是如此使用,只是CommandType不一样而已。

 DbCommand.CommandType = CommandType.StoredProcedure;

    优点:1,在缓存没清除的情况下,此Sql数据库只需解析一次,再次执行此Sql时速度将更快。

        2,传入参数顺序没要求,只要名字对应上就可以。

    缺点:1,数据类型和Oracle数据库有些不一致。

        2,速度比不过ODP。

        其他缺点等大虾提供了。

附上此DBHelper(精简版):

MSDAORA Sql的参数传递方法第1张MSDAORA Sql的参数传递方法第2张MSORA DBHelper

上一篇:OLE DB Sql的参数传递方法   下一篇:ODP.Net Sql的参数传递方法

免责声明:文章转载自《MSDAORA Sql的参数传递方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇statement 、prepareStatement的用法和解释MAC自带的SVN进行升级下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

这样做,免费从Oracle同步数据

点击▲关注 “数据和云” 给公众号标星置顶 更多精彩 第一时间直达 刘伟 刘伟,云和恩墨软件开发部研究院研究员;前微博DBA,主要研究方向为开源数据库,分布式数据库,擅长自动化运维以及数据库内核研究。 不得不承认的一点是,当前数据库的使用趋势,至少在国内,是逐渐从Oracle转向MySQL(扩大化概念的话,就是包括PG等在内的开源数据库,以及rds类的云...

SQL Server 2008 R2占用内存越来越大解决方法

最近开发sql server数据库项目的过程中发现了这么一个问题,后台网站内存占用95%,通过任务管理器查看发现占内存的进程是sqlserver.exe,是因为SQL Server 2008 R2运行越久,占用内存会越来越大。 因为sqlserver 本身内存回收机制的问题【Sql Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行Sql...

2019-2-14SQLserver中function函数和存储过程、触发器、CURSOR

Sqlserver 自定义函数 Function使用介绍 前言:         在SQL server中不仅可以可以使用系统自带的函数(时间函数、聚合函数、字符串函数等等),还可以根据需要自定义函数。 一、定义: 用户自定义函数的类型: 1、标量值函数(返回一个标量值) 2、表格值函数(内联表格值函数、多语句表值函数,返回一个结果集即返回多个值...

mybatis mapper学习1-mapper.xml映射文件生成:Mybatis Generator的下载-安装-配置-运行

mybatis3系列文章目录链接 1.下载eclipse 点击eclipse mars.1 下载eclipse mars.1版本  2.下载Mybatis Generator 插件 1)在线安装 在eclipse中 marketplace搜索Mybatis Generator 插件install安装  2)离线安装 在这个页面下载generator-...

SQL Server 2008 空间数据存储摘抄(SRID 点 MultiPoint LineString MultiLineString 多边形 MultiPolygon GeometryCollection)

有两种类型的空间数据。geometry数据类型支持平面或欧几里得(平面球)数据。geometry数据类型符合适用于 SQL 规范的开放地理空间联盟 (OGC) 简单特征 1.1.0 版。 另外,SQL Server 支持geography数据类型,该数据类型可存储诸如 GPS 纬度和经度坐标之类的椭圆体(圆球)数据。 geometry和geography数...

MS SQL Server版本的选择

  这两天寻思着将用了很久的SQL Server Express edtion换一换,因为这毕竟是个免费版,很多功能,包括使用起来感觉不是很好,但是面对SQL Server的一大堆版本,我茫然了,不知道该怎么选择,真的感到很纠结,一般SQL Server有如下几个版本,先来做个大概介绍. 1,企业版(Enterprise Edition),故名思义,它是提...