2015-02-27 2 views
0

Я знаком с tsql, но не слишком хорошо знаком с plsql, как я могу получить этот запрос для работы в pl sql?Pl/sql if statement

DECLARE 
DATENUM INT := 1; 

begin 
if DATENUM = 1 
     then 
      select 'one' as test from dual; 
     else 
      select 'two' as test from dual; 

end if; 

end; 

я просто получаю ошибку ниже

[Error] Script lines: 1-15 ------------------------- 
ORA-06550: line 7, column 14: 
PLS-00428: an INTO clause is expected in this SELECT statement 
ORA-06550: line 9, column 13: 
PLS-00428: an INTO clause is expected in this SELECT statement 
Script line 7, statement line 7, column 14 

Eidt:

то, что я хочу сделать, это beable выполнить запрос на основе состояния

, например - если он это первый месяц, затем выберите * из stackdb , если это 5-й месяц, затем выберите * из adiffdb и т. д.

ответ

2

Это не из-за оператора if, а из-за того, что вам нужно указать переменную результата, чтобы выбрать значение. В противном случае вы просто выполняете фиктивный запрос.

DECLARE 
    DATENUM INT := 1; 
    DATENAME varchar2(5); 
begin 
    if DATENUM = 1 then 
    select 'one' into DATENAME as test from dual; 
    else 
    select 'two' into DATENAME as test from dual; 
    end if; 
end; 
+0

это был действительно грубый пример, я действительно хочу, чтобы выполнить запрос по дате, так что каждый день может отличаться в запросе и сортировка – lookslikeanevo

+0

Так .. Что вы попросили на самом деле не все, что вам нужно ? Я был бы рад помочь, конечно, но мне интересно, какие умственные способности чтения вы ожидаете от меня. :) – GolezTrol

+0

youre right, я ставлю лучшее объяснение ... я извиняюсь, пытаясь сделать 10 вещей сразу – lookslikeanevo