<tfoot id='OSvQu'></tfoot><legend id='OSvQu'><style id='OSvQu'><dir id='OSvQu'><q id='OSvQu'></q></dir></style></legend>
    • <bdo id='OSvQu'></bdo><ul id='OSvQu'></ul>

      <small id='OSvQu'></small><noframes id='OSvQu'>

      <i id='OSvQu'><tr id='OSvQu'><dt id='OSvQu'><q id='OSvQu'><span id='OSvQu'><b id='OSvQu'><form id='OSvQu'><ins id='OSvQu'></ins><ul id='OSvQu'></ul><sub id='OSvQu'></sub></form><legend id='OSvQu'></legend><bdo id='OSvQu'><pre id='OSvQu'><center id='OSvQu'></center></pre></bdo></b><th id='OSvQu'></th></span></q></dt></tr></i><div id='OSvQu'><tfoot id='OSvQu'></tfoot><dl id='OSvQu'><fieldset id='OSvQu'></fieldset></dl></div>

      从 Oracle 表变量/数组中选择值?

      Selecting Values from Oracle Table Variable / Array?(从 Oracle 表变量/数组中选择值?)

    1. <legend id='hexbl'><style id='hexbl'><dir id='hexbl'><q id='hexbl'></q></dir></style></legend>

      1. <small id='hexbl'></small><noframes id='hexbl'>

      2. <i id='hexbl'><tr id='hexbl'><dt id='hexbl'><q id='hexbl'><span id='hexbl'><b id='hexbl'><form id='hexbl'><ins id='hexbl'></ins><ul id='hexbl'></ul><sub id='hexbl'></sub></form><legend id='hexbl'></legend><bdo id='hexbl'><pre id='hexbl'><center id='hexbl'></center></pre></bdo></b><th id='hexbl'></th></span></q></dt></tr></i><div id='hexbl'><tfoot id='hexbl'></tfoot><dl id='hexbl'><fieldset id='hexbl'></fieldset></dl></div>
          <tbody id='hexbl'></tbody>
          <bdo id='hexbl'></bdo><ul id='hexbl'></ul>

              • <tfoot id='hexbl'></tfoot>

                本文介绍了从 Oracle 表变量/数组中选择值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                继我的上一个问题之后(Oracle PL/SQL 中的表变量?)...

                Following on from my last question (Table Variables in Oracle PL/SQL?)...

                一旦数组/表中有值,如何将它们再次取出?最好使用 select 语句或类似的东西?

                Once you have values in an array/table, how do you get them back out again? Preferably using a select statement or something of the like?

                这是我到目前为止所得到的:

                Here's what I've got so far:

                declare
                    type array is table of number index by binary_integer;
                    pidms array;
                begin
                    for i in    (
                                select distinct sgbstdn_pidm
                                from sgbstdn
                                where sgbstdn_majr_code_1 = 'HS04'
                                and sgbstdn_program_1 = 'HSCOMPH'
                                )
                    loop
                        pidms(pidms.count+1) := i.sgbstdn_pidm;
                    end loop;
                
                    select *
                    from pidms; --ORACLE DOESN'T LIKE THIS BIT!!!
                end;
                

                我知道我可以使用 dbms_output.putline() 输出它们,但我希望得到一个结果集,就像我从任何其他表中选择一样.

                I know I can output them using dbms_output.putline(), but I'm hoping to get a result set like I would from selecting from any other table.

                提前致谢,马特

                推荐答案

                您可能需要一个全局临时表.

                You might need a GLOBAL TEMPORARY TABLE.

                在 Oracle 中,这些创建一次,然后在调用时数据对您的会话来说是私有的.

                In Oracle these are created once and then when invoked the data is private to your session.

                Oracle 文档链接

                尝试这样的事情...

                CREATE GLOBAL TEMPORARY TABLE temp_number
                   ( number_column   NUMBER( 10, 0 )
                   )
                   ON COMMIT DELETE ROWS;
                
                BEGIN 
                   INSERT INTO temp_number
                      ( number_column )
                      ( select distinct sgbstdn_pidm 
                          from sgbstdn 
                         where sgbstdn_majr_code_1 = 'HS04' 
                           and sgbstdn_program_1 = 'HSCOMPH' 
                      ); 
                
                    FOR pidms_rec IN ( SELECT number_column FROM temp_number )
                    LOOP 
                        -- Do something here
                        NULL; 
                    END LOOP; 
                END; 
                /
                

                这篇关于从 Oracle 表变量/数组中选择值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                How to redirect the output of DBMS_OUTPUT.PUT_LINE to a file?(如何将 DBMS_OUTPUT.PUT_LINE 的输出重定向到文件?)
                How do I get column datatype in Oracle with PL-SQL with low privileges?(如何使用低权限的 PL-SQL 在 Oracle 中获取列数据类型?)
                Get a list of all functions and procedures in an Oracle database(获取 Oracle 数据库中所有函数和过程的列表)
                Why cannot I create triggers on objects owned by SYS?(为什么我不能在 SYS 拥有的对象上创建触发器?)
                Returning result even for elements in IN list that don#39;t exist in table(即使对于表中不存在的 IN 列表中的元素也返回结果)
                Reset Sequence in oracle 11g(oracle 11g 中的重置序列)
                    <tbody id='E46sr'></tbody>

                      <bdo id='E46sr'></bdo><ul id='E46sr'></ul>

                        <small id='E46sr'></small><noframes id='E46sr'>

                        <tfoot id='E46sr'></tfoot>
                        <legend id='E46sr'><style id='E46sr'><dir id='E46sr'><q id='E46sr'></q></dir></style></legend>

                          <i id='E46sr'><tr id='E46sr'><dt id='E46sr'><q id='E46sr'><span id='E46sr'><b id='E46sr'><form id='E46sr'><ins id='E46sr'></ins><ul id='E46sr'></ul><sub id='E46sr'></sub></form><legend id='E46sr'></legend><bdo id='E46sr'><pre id='E46sr'><center id='E46sr'></center></pre></bdo></b><th id='E46sr'></th></span></q></dt></tr></i><div id='E46sr'><tfoot id='E46sr'></tfoot><dl id='E46sr'><fieldset id='E46sr'></fieldset></dl></div>