![]() |
1
4
取决于文件的大小。如果它相对较小,那么存储过程可以将其全部读取到一个大字段(varchar2、clob或blob)中,并将其作为值返回。 也值得研究 external tables 您可以从文件中进行选择,就像它是一个普通的数据库表一样。 |
![]() |
2
2
首先,我建议尝试Gary推荐的外部表方法-这很有可能满足您的要求,并允许您将文件中的数据视为调用代码中表中的行。 我的下一个建议是编写一个函数来封装utl_文件访问,并使用管道行返回行(这样,在代码开始将行返回到客户机之前,您不需要将整个文件读取到内存中)。 这个函数可以返回一个引用光标(JDBC当然可以处理),基本上是一个结果集的句柄,或者返回一个对象类型集合。
然后通过在select中强制转换函数的结果来访问该函数
如果您没有函数的任何参数,或者可以从表中派生这些参数,那么您甚至可以将其包装在视图中。 ref cursor方法几乎将这个SQL包装在一个函数中。
但是,由于所有这些基本上都是重新发明外部表,所以要仔细检查它们是否满足您的需求。 |
![]() |
vytaute · 返回表类型时Oracle函数中的类型错误 3 年前 |
![]() |
BetaRide · Oracle架构用户无法在过程中创建表 7 年前 |
|
F.donoso · 嵌套的隐式游标未在数据中清除 7 年前 |
![]() |
ADH · 如何在网格中调用过程和输出结果 7 年前 |