我想知道PL/SQL返回直能返回数组吗

[复制链接]
查看11 | 回复9 | 2007-7-4 17:27:50 | 显示全部楼层 |阅读模式
我想知道PL/SQL返回直能返回数组吗
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
能, 如下:
create or replace function arrays
return pack_arrays.CharacterTabas
v_Characters pack_arrays.CharacterTab;
begin
v_Characters(1) := 'Harold';
v_Characters(2) := 'Susan';
v_Characters(3) := 'Steve';
return v_Characters;
end arrays;
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
非常感谢帮我解答哦
还想问, 如果在JAVA里调用的话, 直接把它当作一个数组处理就可以了,是这样吗?
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
不行
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
最初由 d.c.b.a 发布
[B]不行 [/B]

是直接应用不行, 对于每种应用程序都有特殊的调用和取回返回值的方法, 总之, 能返回数组是没有问题的. 是这样吗?
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
我也是这个问题只不过我是想在pb中调用存储过程,pb的帮助中说能用(用rpcfunc)参数的形式返回plsql table,可是我试验不成功,比如说我想返回字符串数组,总是保错说我参数类型或个数不匹配,不知道什么原因,亟待高手赐教:
create or replace procedure kkk( plsql_test_1in chart.plsql_test)
is
begin
null;
end;
--其中chart.plsql_test
create or replace package chart
is
type plsql_test is varray(20) of varchar2(20);
end chart;
oracle编译没有问题。
pb中:
string ls_tmp[20]
sqlca.SPP_PLSQLTABLE_TEST(ls_tmp)
编译时报错:参数数据类型不匹配,或参数个数不匹配
望高手赐教。
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
应该是PB的问题,不是oracle问题!
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
PB里使用如下SQL语句,就跟查询一个返回结果一样
Select * From Table(Cast(arrays()) As pack_arrays.CharacterTab))
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
想问一下pack_arrays.CharacterTab是什么东西
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
crzx老兄解释一下如何?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行