oracle bulk select,oracle – 可以在select语句where子句中使用表...

关于如何实现这一目标,您有多种选择.

如果要使用集合,则可以使用TABLE函数从中进行选择,但您使用的集合类型变得很重要.

举一个简短的例子,这会创建一个数字表格的数据库类型:

CREATE TYPE number_tab AS TABLE OF NUMBER

/

Type created.

然后下一个块填充集合并使用它作为表执行基本选择,并将其连接到EMP表(带有一些输出,以便您可以看到发生了什么):

DECLARE

-- Create a variable and initialise it

v_num_tab number_tab := number_tab();

--

-- This is a collection for showing the output

TYPE v_emp_tabtype IS TABLE OF emp%ROWTYPE

INDEX BY PLS_INTEGER;

v_emp_tab v_emp_tabtype;

BEGIN

-- Populate the number_tab collection

v_num_tab.extend(2);

v_num_tab(1) := 7788;

v_num_tab(2) := 7902;

--

-- Show output to prove it is populated

FOR i IN 1 .. v_num_tab.COUNT

LOOP

dbms_output.put_line(v_num_tab(i));

END LOOP;

--

-- Perform a select using the collection as a table

SELECT e.*

BULK COLLECT INTO v_emp_tab

FROM emp e

INNER JOIN TABLE(v_num_tab) nt

ON (e.empno = nt.column_value);

--

-- Display the select output

FOR i IN 1 .. v_emp_tab.COUNT

LOOP

dbms_output.put_line(v_emp_tab(i).empno||' is a '||v_emp_tab(i).job);

END LOOP;

END;

您可以从中看到,数据库TYPE集合(number_tab)被视为一个表,可以这样使用.

另一个选择是简单地加入您在示例中选择的两个表:

SELECT tt.*

FROM table_two tt

INNER JOIN table_one to

ON (to.item = tt.cid);

还有其他方法可以做到这一点,但第一种可能最适合您的需求.

希望这可以帮助.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值