2014-12-03 4 views
0

적어도 하나의 잠재력 기준이 7 개 이상인 바인드 변수로 동적으로 검색어를 작성합니다. 나는 이것을 할 수 있음을 알고있다. -PLSQL 동적 사용으로 즉시 실행

EXECUTE IMMEDIATE sql USING bind_var1, bind_var2 or 
EXECUTE IMMEDIATE sql USING bind_var3, bind_var5, bind_var7. 

sql?에 바인드 변수를 포함 할 수 있습니까?

sql = 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2 USING bind_var1, bind_var2' 

와 내가 원하는 동적 THEN 문을 IF를 많이 쓰는 대신 사용 조각을 구축 할 필요가

EXECUTE IMMEDIATE sql? 

을한다. bind_var1를 사용

답변

0

당신의 , 코드의 bind_var2 파이스 동전 아웃 사이드 OS에게 당신의 SQL 문자열을해야하고 선택 senarios하면 않는 한 커서로 선택을위한 동적 SQL을 사용하려고에 대한 즉각적인 문을 실행 의 마지막에 와서 변수로 선택하고 싶습니다

0

태그에 따르면, 나는 이것이 일종의 PL/SQL 블록 내부에서 사용될 것이라고 가정합니다. 그래서, 아마도 open for 성명을 찾고 계십니까?

sql := 'SELECT * FROM table WHERE id = :bind_var1 AND name = :bind_var2'; 
open my_cursor for sql using bind_var1, bind_var2'; 

-- do whatever you need with your cursor 
:

이것은 당신이 동적 쿼리에 커서를 얻을 수 있습니다