2017-02-03 4 views
1

Я пытаюсь запустить простой анонимный PL/SQL, он терпит неудачу, когда я запускаю его как запрос, он отлично работаетFROM ключевого слова не найдено, где ожидаются с двойным столом

declare 
    c_minute number; 
     c_hour number; 
begin 
    select 
      case when (17 - to_char(systimestamp,'HH24')) < 0 then 0 else 17 - to_char(systimestamp,'HH24') end hours into c_hour, 
      case when (17 - to_char(systimestamp,'HH24')) < 0 then 0 else 60 - to_char(systimestamp,'MI') end into c_minute 
     from dual; 
end; 

Ошибка

ORA-06550: line 7, column 103: 
PL/SQL: ORA-00923: FROM keyword not found where expected 
ORA-06550: line 5, column 6: 
PL/SQL: SQL Statement ignored 

ответ

3

У вас проблема с синтаксисом.

выбора нескольких столбцов в переменные, как это:

select col1, col2, col3 into v1, v2, v3 from . . . 

Попробуйте это:

declare 
    c_minute number; 
     c_hour number; 
begin 
    select 
      case when (17 - to_char(systimestamp,'HH24')) < 0 then 0 else 17 - to_char(systimestamp,'HH24') end hours , 
      case when (17 - to_char(systimestamp,'HH24')) < 0 then 0 else 60 - to_char(systimestamp,'MI') end 
      into c_hour,c_minute 
     from dual; 
end; 
+0

ааа .. так немым меня .. спасибо – Zeus