扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
如果已经存在一个存储过程A(参数);那么在存储过程B中可以直接通过:values := A(参数);即可实现调用。备注:values必须在初始化过程中进行定义如: values VARCHAR(30);并且此类型必须与A存储过程返回参数类型一致。
我们提供的服务有:成都做网站、网站建设、微信公众号开发、网站优化、网站认证、巴州ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的巴州网站制作公司
你必须把C#做成COM组件,也就是Active组件,然后用oracle调用(oracle调用外部com没做过)
还有就是你也可以做一个C#的wcf服务,然后由wcf服务向外发送信息,由于wcf服务可以与非wcf客户端交互,所以它们之间的调用理论是成立的,由于wcf传输的就是soap消息,所以oracle必定也支持,因为都是沿用的soa标准,所以这样做更合理效率也更好一点!
你把wcf服务按照元数据进行发布,然后oracle按照wcf提供的地址进行数据传输(oracle和wcf服务在本地也是可以的)。
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。
1、createsequence
你首先要有createsequence或者createanysequence权限,
createsequenceemp_sequence
incrementby1--每次加几个
startwith1--从1开始计数
nomaxvalue--不设置最大值
nocycle--一直累加,不循环
cache10;
一旦定义了emp_sequence,你就可以用currval,nextval
currval=返回sequence的当前值
nextval=增加sequence的值,然后返回sequence值
比如:
emp_sequence.currval
emp_sequence.nextval
可以使用sequence的地方:
-不包含子查询、snapshot、view的select语句
-insert语句的子查询中
-nsert语句的values中
-update的set中
可以看如下例子:
insertintoempvalues
(empseq.nextval,'lewis','clerk',7902,sysdate,1200,null,20);
selectempseq.currvalfromdual;
但是要注意的是:
-第一次nextval返回的是初始值;随后的nextval会自动增加你定义的incrementby值,然后返回增加后的值。currval总是返回当前sequence的值,但是在第一次nextval初始化之后才能使用currval,否则会出错。一次nextval会增加一次sequence的值,所以如果你在同一个语句里面使用多个nextval,其值就是不一样的。明白?
-如果指定cache值,oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。使用cache或许会跳号,比如数据库突然不正常down掉(shutdownabort),cache中的sequence就会丢失.所以可以在createsequence的时候用nocache防止这种情况。
2、altersequence
你或者是该sequence的owner,或者有alteranysequence权限才能改动sequence.可以alter除start至以外的所有sequence参数.如果想要改变start值,必须dropsequence再re-create.
altersequence的例子
altersequenceemp_sequence
incrementby10
maxvalue10000
cycle--到10000后从头开始
nocache;
影响sequence的初始化参数:
sequence_cache_entries=设置能同时被cache的sequence数目。
可以很简单的dropsequence
dropsequenceorder_seq;
由于微软在.Net框架4.0中已经决定撤销使用System.Data.OracleClient,造成在VS2010中无法连接Oracle数据库,但它还依旧存在于.Net架构中,我们可以通过自己引用。具体方法如下:
在需要引用的程序集引用文件夹上右击,选择添加引用
选择浏览选项
找到目录 C:\Windows\Microsoft.NET\Framework\v2.0.50727
找到 System.Data.OracleClient.dll 文件
点击确定。OK,引用完成。
1、安装Oracle客户端。
引入Oracle.DataAccess.dll
imports Oracle.DataAccess
2、不安装Oracle客户端
引入C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.OracleClient.dll
imports System.Data.OracleClient
我已经安装了oracle8.1.7,但是如何引入Oracle.DataAccess.dll呢
解决方案 - 鼠标右键当前项目 - 追加引用 - 引用 - 从oracle安装目录下找到Oracle.DataAccess.dll - 选择 - ok
(1)控件法:
把控件OleDbDataAdapter放到窗体上,然后进行配置
它会自动给OleDbConnection
在OleDbDataAdapter控件上右键,生成数据集DataSet
把控件OleDbCommand也放上
最后为了显示数据,放上DataGrid,配置他的DataSource和DataMumber
这样如果配置正确了就可以进行简单的数据显示了
(2)代码连接:
Dim str4 As String
Dim connection2 As OleDbConnection
Dim adapter As New OleDbDataAdapter
str4 = "select * from dept"
connection2 = New OleDbConnection"Provider=OraOLEDB.Oracle.1;UserID=scott;Data Source=hong;Password=tiger")
adapter = New OleDbDataAdapter(str4, connection2)
Dim DataSet21 As DataSet = New DataSet
adapter.Fill(DataSet21, "dept")
引用了dll,里面不会出现编译错误。你要确保你没装oracle client的机器上面,没用到这个dll相关的类。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流