Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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

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 如果我输入其中一个变量,如何自动显示结果?_Oracle_Plsql - Fatal编程技术网

Oracle 如果我输入其中一个变量,如何自动显示结果?

Oracle 如果我输入其中一个变量,如何自动显示结果?,oracle,plsql,Oracle,Plsql,我希望它在执行时显示一个变量或所有变量或两个变量。我怎么能做到呢 declare @sql varchar(8000) declare @sql_where varchar(8000) declare @ww varchar(10) declare @plant varchar(10) declare @plnr_id varchar(10) set @plant = 'CS58' set @ww = '201240' set @plnr_id = '' set @sql_wh

我希望它在执行时显示一个变量或所有变量或两个变量。我怎么能做到呢

    declare @sql varchar(8000)
declare @sql_where varchar(8000)

declare @ww varchar(10)
declare @plant varchar(10)
declare @plnr_id varchar(10)

set @plant = 'CS58'
set @ww = '201240'  
set @plnr_id = ''

set @sql_where = ''
set @sql = 'select * from  rout_sub_doi '

if len(@plant) > 0
    set @sql_where = 'where plant IN('''+ @plant +''') '

if len(@ww) > 0
    set @sql_where = @sql_where + 'AND sys_intel_ww IN ('''+  @ww +''') '

if len(@plnr_id) > 0 

    set @sql_where = @sql_where + 'AND  plnr_id IN (''' + @plnr_id + ''') '


print @sql
print @sql_where

exec (@sql + @sql_where )       
请尝试以下代码:

SET SERVEROUTPUT ON
declare 
  vsql varchar(8000);
  sql_where varchar(8000);
  ww varchar(10);
  plant varchar(10);
  plnr_id varchar(10);
begin
  plant := 'CS58';
  ww := '201240';  
  plnr_id := '';
  sql_where := '';
  vsql := 'select * from  rout_sub_doi ';

  if (length(plant) > 0)
  then
    sql_where := 'where plant IN('''||plant||''') ';
  end if;

  if (length(ww) > 0)
  then
    sql_where := sql_where ||'AND sys_intel_ww IN ('''||ww||''')';
  end if;

  if (length(plnr_id) > 0 )
  then
    sql_where := sql_where + 'AND  plnr_id IN ('''||plnr_id||''') ';
  end if;

  dbms_output.put_line(vsql);  
  dbms_output.put_line(sql_where);  

  vsql:=vsql+vsql_where;

  execute immediate vsql;    
end;
/

这是T-SQL。那么您的问题真的能帮助我将SQL Server代码转换为Oracle PL/SQL吗。虽然严格来说这是一个问题,但它应该有一个问号。