oracle中定义一个package,包中定义了一个数据类型
type userRow is record(
id t_user.id%type,
name t_user.name%type
);
TYPE emp_type_array IS TABLE OF userRow INDEX BY BINARY_INTEGER;定义了一个存储过程:
create or replace procedure aaa(aa in 包.emp_type_array) as  .......我的目的是传递给Oracle一个数组,然后存储过程中批量插入数据库的表中
问题是,C#如何调用这个存储过程?参数的数据类型定义成什么?苦恼中,都试过了,都不合适!
那位大侠解决过?帮忙解答一下哈!如果我上面的思路错了的话,如何实现批量提交给oracle数据,然后批量插入数据库?

解决方案 »

  1.   

    使用 oracle数据库操作类,可看看petshop
    参考
      

  2.   

    没有大侠碰到过吗?或者说一下如何批量提交给oracle数据,然后插入数据库,有什么方案吗?
      

  3.   

    应该是不支持的说,因为不存在这样的OracleType.所以你可以考虑先一次性插入Oracle的临时表,然后通过临时表来批量操作。
      

  4.   

    我也一直使用Oracle,不过你说的问题我没有接触过。
    不知道你的数据库驱动是不是使用Oracle出品的Oracle data provider for .Net,我有这个组件的编程资料,大概可以解答你的问题,告知邮箱后我发给你。
      

  5.   

    我自己的解决办法:
    将上面的Record类型拆分成多个一列table,然后用数组传递进去的
    TYPE emp_userid_array IS TABLE OF t_user.id%type INDEX BY BINARY_INTEGER; TYPE emp_username_array IS TABLE OF t_user.name%type INDEX BY BINARY_INTEGER; 然后用两个数组分别传递给存储过程,可以实现!
    不过感谢大家的回复,谢谢!