2015-06-11 3 views
0

Мне нужно разработать веб-приложение с php. Для процесса входа в систему. Обычно я использую инструкцию select с идентификатором и паролем, если строка возвращает, то это успешный вход. Но я хотите использовать хранимую процедуру и не хотите получать строку из базы данных, но просто boolean значение. Подпись PL/SQL ниже.Возвращение boolean из oracle function или procedure с параметром out

procedure successful_login(cit_id in citizens.citizen_id%type, 
          pass in varchar2,v_login_successful out boolean) 

Я не раздувать страницу с кодом, но процедура изменяет v_login_successful к истинным или ложным в зависимости от успешного входа в систему, в PL/SQL.But Я хочу, чтобы вызвать эту процедуру с PHP.If я связать переменную PHP с v_login_successful параметр и выполнение процедуры с PHP, будет ли PL/SQL-движок возвращать измененную версию переменной v_login_successful обратно на PHP?

ответ

0

PL/SQL имеет Boolean datatype, но SQL не имеет. Это означает, что вы можете

  1. использовать его в функциях, процедурах, анонимных блоках.
  2. использовать его в качестве параметров в процедурах и функциях, только если они используются в контексте PL/SQL.

Когда вы вызываете процедуру из php, это будет инструкция sql. Вы получите исключение expression is of wrong type.

Вместо этого вы можете использовать CHAR(1) (Y или N) или NUMBER(1) (0 или 1) тип данных для параметра out.