2011-08-19 6 views
-1

제 질문은 주어진 비행과 주어진 날짜를 입력으로 받고 이름, 주소 및 전화 번호를 출력으로 포함하는 고객 호출 목록을 표시하는 저장 프로 시저입니다. 쿼리가 간단합니다. 단일 테이블에서 모든 데이터를 가져올 수 있지만 프로 시저를 실행하는 동안 입력을 받아서 내부의 값과 비교하는 방법을 모르겠습니다. 쿼리는 다음과 같습니다매개 변수가있는 저장 프로 시저

select NAME, ADDRESS, PHONE 
    FROM SCH_FLIGHTS SF, PASSENGERS P 
    WHERE SF.DATE(input) = P.DATE 

겠습니까 매우 동일한 날 도와 주셔서 감사합니다 .... 그냥 질문에 언급 한 바와 같이 2 개 입력, 날짜와 flight_no 걸리는 저장 프로 시저에 해당 쿼리를 변환해야 위.

감사합니다.

+1

http://www.mysqltutorial.org/stored-procedures-parameters.aspx. 그것 좋은 자습서. – Nitish

+0

전달할 두 입력란은 무엇입니까? 내가 C SF.DATE (입력), 다른 무엇입니까? –

+0

사용중인 RDBMS의 특징을 명확히하십시오. SQL은 모든 flobours에서 (대부분) 표준이지만, 저장 프로시 저는 각 제품별로 맞춤되어 있습니다. 귀하의 태그는 [mysql]이라고 말하지만 Bernard의 응답에 대한 귀하의 의견을 포함하는 오류는 Oracle Pl/SQL에서입니다. – APC

답변

0

는 SP (난 그냥 추측하고 있으므로 정확한 데이터 유형을 모르는) 만들려면 :

delimiter // 
CREATE PROCEDURE NameOfProcedure(input VARCHAR(32)) 
BEGIN 
    select NAME, ADDRESS, PHONE 
    FROM SCH_FLIGHTS SF, PASSENGERS P 
    WHERE SF.DATE(input) = P.DATE 
END 
// 

PHP 코드는이 같은 뭔가를해야만 볼 것을 (TODO 보안상의 이유로 쿼리 매개 변수에 의해 $ 입력을 대체) : $ result = $ db-> query ("call NameOfProcedure ($ input)");

+1

PLS-00103 : 기호 "(" 다음 중 하나가 예상 될 때 : =.), @ % 기본 문자 다음과 같은 오류가 발생했습니다. – user902243

+2

@ user902243 이것은 혼란 스럽습니다. MySql을 사용하고 있습니까? 오류 메시지는 Oracle 메시지와 같습니다. –