title: How to run Oracle query with begin/end in SQL*Plus?
body: <p>I have created a query block with begin/end and want to run that in SQL*Plus. But how can I run it in the command line?</p>
  
  <p>Actually the code is from some blog and it is used for searching text in the database. ABC is the texts to be searched.</p>
  
  <pre><code>set serveroutput on size 1000000
  declare
  TYPE QueryCurType is REF CURSOR;
  query1 QueryCurType ;
  
  cursor c1 is select owner,table_name from dba_tables where owner not in ('SYS','SYSTEM') and table_name not like '%$%';
  cursor c2(t1 varchar2) is select column_name from dba_tab_columns where table_name=t1 and DATA_TYPE in ('NVARCHAR2','VARCHAR2','CHAR');
  temp_var varchar2(3000);
  query varchar2(3000);
  
  begin
  for tab1 in c1 loop
    for col in c2(tab1.table_name) loop
      query:='select '||col.column_name||' from '||tab1.owner||'.'||tab1.table_name||' where '||col.column_name||' like "ABC"';
      --dbms_output.put_line('executing..'||query);
      open query1 for query;
      loop
        fetch query1 into temp_var;
        if concat('a',temp_var) != 'a' then
        dbms_output.put_line('Found String: "'||temp_var||'"# Column:'||col.column_name||'# Table:'||tab1.table_name);
        end if;
        exit when query1%NOTFOUND;
      end loop;
    end loop;
  end loop;
  end;
  </code></pre>
  
  <p>but this never gets run. How can I run the codes?</p>