
例如 下面有个存储过程,前面两个是输出参数,后面两个是输入参数。
PROCEDURE generate_credit_memo (
parameter1 OUT VARCHAR2
,parameter2 OUT VARCHAR2
,parameter3 IN VARCHAR2
,parameter4 IN NUMBER
)
.....
....
.....
parameter1 := 'Error during eOrder Credit-Discount: ' || SQLERRM
parameter2 := 'out put 2'
return
程序中自然有对输出参数赋值的地方,执行结束后,用return输出out put 参数。
下面是调用这个存储过程的方式:
apps.fnd_file.put_line
(which =>apps.fnd_file.output
,buff => ' --->insert into the Debit Memo information '
|| 'source_name='
|| v_batch_source_name
|| 'order_no'
|| cur_fandian.so_number
|| 'invoice_no'
|| cur_fandian.do_number
)
PROCEDURE generate_credit_memo (
output1=> parameter1
,output2 => parameter2
, input3 => parameter3
,input4 => parameter4
)
用‘=>’符号来传入参数,这个和调用单个输出参数的函数,方法是一样的
要学会 *** 作数据库,你得弄懂下面几个类DataSet DataAadapter DataTable DataView DataReader
这些都是与数据库访问有关的接口或是类
用SQL来举例吧
数据库访问首先要用到SqlConnection类,就是用来联接数据库的
比如SqlConnection sqlconn = new SqlConnection()
就是创建一个连接,下面就是设置好数据库的连接
sqlconn.ConnectionString = "Data Source=(local)Initial Catalog=LJDBUser ID=saPassword=sa"
数据库 *** 作前,都要打开连接的
sqlconn.Open()
在数据库 *** 作完成后,要关闭连接sqlconn.Close()
数据 *** 作是如何实现的呢,对于这些 *** 作来说,无非是写入,修改,删除,查询
我们先看看查询,查询的数据,得有个东西存放,同时还要显示给用户看,那么,DataSet就是用来存放数据的,DataView就是展示给用户的,但DataView只是一个数据的视图,真正的给用户看的,是用DataGrid或DataGridView来展示的
用户可以在DataGrid中 *** 作数据,在DataGridView中好像不行
那么用户的写入,修改,删除 *** 作是如何提交到数据库,数据又是如何传到DataSet中来的呢?这时候,我们就要用到SqlDataAdapter了,看它的名字,叫适配器,它的作用,就是把用户对DataSet的修改,提交到数据库,保证DataSet的内容与数据库一致,
SqlDataAdapter要指定InsertCommand,SelectCommand,DeleteCommand,UpdateCommand,就是说,数据如何 *** 作的,你要给它指定好了
SqlDataAdapter.Fill(DataSet1)//将数据取出来,并填充到DataSet1中去
SqlDataAdapter.Update(DataSet1)//将数据的变动在数据库中做修改
DataTable是DataSet的一部分,DataSet包含Relations与Tables
以上是我打出来的,不是复制的,给点分吧
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)