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吗。虽然严格来说这是一个问题,但它应该有一个问号。