0
MYSQL에서 저장 프로 시저를 작성하는 방법을 배우기 시작했고로드 블록을 쳤습니다. mysql 저장 프로 시저의 레코드 표시
나는 다음과 같은 코드를 작성 :DELIMITER $$
DROP PROCEDURE IF EXISTS `emscribedx`.`countcodes` $$
CREATE PROCEDURE `emscribedx`.`countcodes`()
BEGIN
declare doneprocessing int default 0;
declare thisaccount varchar(50);
declare countcursor cursor for select acct from patientid where patienttype='P';
declare continue handler for not found
set doneprocessing = 1;
Fetch countcursor into thisaccount;
Repeat
select * from doc_table where acct = thisaccount;
until doneprocessing = 1
END repeat;
close countcursor;
END $$
DELIMITER ;
내가 반복 문 다음에 발생하는 select 문의 결과를 표시하고 싶습니다. 그러나 나는 그것을 어떻게합니까? 저장 프로 시저를 실행할 때 아무 일도 일어나지 않습니까?
은 왜 안 대신를 사용엘리엇
이것은 장난감 절차 일뿐입니다. 나는 이걸로 발을 젖게하기 위해서 이것으로 실험하고있다. 나는이 결과를 어떻게 반환할지 알고 싶다. – Elliott
프로 시저에 단일 SELECT 문이 포함되어 있으면 쿼리 결과가 호출 될 때이를 반환합니다. 두 개 이상의'SELECT'가 포함되어 있다면, 첫 번째 것을 반환 할 것입니다 (잘못하지 않았다면). – bfavaretto
@bfavaretto : 그건 완전히 정확하지 않습니다. MySQL은 저장 프로 시저 내에서 실행 된 모든 명령문의 결과를 반환하지만 클라이언트는 그러한 다중 결과 집합을 읽는 것을 지원하지 않을 수 있습니다. 예를 들어, PDO에서는 ['PDOStatement :: nextRowset'] (http : //www.php .net/manual/ko/pdostatement.nextrowset.php)를 사용하여 이들 사이를 이동하십시오. – eggyal