Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle Pl/SQL多SQL语句_Oracle_Oracle11g_Oracle Sqldeveloper - Fatal编程技术网

Oracle Pl/SQL多SQL语句

Oracle Pl/SQL多SQL语句,oracle,oracle11g,oracle-sqldeveloper,Oracle,Oracle11g,Oracle Sqldeveloper,如果我想在下面的PL/SQL块中放入多条SQL语句,我该如何做 SQL语句: select * from XXFMSLS.XXFM_FAH_EVNT_STGG_ARCH where bch_id in ('SM_1'); select * from XXFMSLS.XXFM_FAH_EVNT_TXNS_HDR where bch_id in ('SM_1'); CREATE OR REPLACE PROCEDURE LAITEST IS l_owner varc

如果我想在下面的PL/SQL块中放入多条SQL语句,我该如何做

SQL语句:

select * from XXFMSLS.XXFM_FAH_EVNT_STGG_ARCH  where
bch_id in ('SM_1');

select * from XXFMSLS.XXFM_FAH_EVNT_TXNS_HDR where
bch_id in ('SM_1');



CREATE OR REPLACE PROCEDURE LAITEST
IS            
l_owner varchar2(30) := 'XXFMSLS';
l_batch varchar2(300) := 'PL_XFER_4';
l_sql varchar2(32000);
begin
l_sql := 'select * from XXFM_FAH_EVNT_CTRL where owner = ''' || l_owner || ''' and bch_id= ''' ||
l_batch || '''';
dbms_output.put_line( l_sql);
end

我猜你想要那样的东西

CREATE OR REPLACE PROCEDURE LAITEST

IS            

l_owner varchar2(30) := 'XXFMSLS';

l_batch varchar2(300) := 'PL_XFER_4';

l_sql varchar2(32000);

begin

l_sql := 'select * from XXFM_FAH_EVNT_CTRL where owner = ''' || l_owner || ''' and bch_id= ''' ||

l_batch || '''
select * from XXFMSLS.XXFM_FAH_EVNT_STGG_ARCH  where owner = ''' || l_owner || ''' and bch_id= ''' ||

l_batch || '''';

dbms_output.put_line( l_sql);

end;

如果您是表的所有者和/或由于任何原因无法访问所有表,也可以使用用户表。

我不确定您想做什么。您想用SQL语句做什么?只是输出它们?为什么不在彼此之后再做呢?我想用同一批生成多个SQL语句,为什么不将多个dbms_输出放在一起。将_行放在彼此之后?这很有效,但有没有更好的方法不放多个dams输出?不确定我是否得到了它?它给出了错误:错误行47第3列结束行47结束第3列预期:标识符字符串或;很抱歉,我没有在这台电脑上安装oracle,所以我不得不猜测:有一个;最后一行,最后一点,最后一点,最后一点,最后一点,sql,还有一点,还有一点,还有一点,最后一点,sql,还有一点,最后一点,sql,还有一点,sql,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,还有一点,还有一点,sql,还有一点,还有一点,sql,还有一点,还有一点,还有一点,还有一点,sql,还有一点,还有一点,sql,还有一点,还有一点,sql,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,还有一点,sql,还有一点,还有一点,还有一点,sql,还有一点,还有一点,有| | |和bch|u id='| l|u batch | |从XXFM_FAH_EVNT_TXNS_行中选择*,其中owner='| l|u owner |和sls|u EVNT|u id从XXFM u FAH_EVNT_TXNS_HDR中选择sls|u EVNT|u id,其中bch|u id位于'l|u batch |;dbms_output.put_行;有可能对硬编码的值进行参数化吗?我能够对这些值进行参数化
CREATE OR REPLACE PROCEDURE LAITEST (bch_id  in varchar2)
IS            
   pattern varchar2(50) := 'XXFM_FAH_EVNT';
   onwer varchar2(50) := 'XXFMSLS';

begin
      for t_name  in (select u_t.TABLE_NAME from all_tables u_t where u_t.OWNER = onwer and u_t.TABLE_NAME like '%'||pattern||'%')
      loop
          l_sql := 'select * from '|| t_name || ' where bch_id = ' || bch_id;
          dbms_output.put_line(l_sql);
      end loop;
end;