SQL 서버에서 나는 항상 일련의 진단 스크립트를 가지고 있었고 항상 다른 변수를 사용하여 변수를 사용하여 다른 선택 및 업데이트가이를 활용할 수 있도록했습니다. Oracle에서이 패턴을 채택하는 데 문제가 있습니다.adhoc 스크립트 매개 변수화
4 개 또는 5 개의 선택 검색어가있을 수 있으며 결과를 확인하면 주석을 제거 할 수있는 업데이트가있을 수 있습니다. 출력에서 select 쿼리의 결과를보고 싶습니다.
SQL Developer를 사용하고 있습니다.
먼저 블록 DEFINE
을 사용해 보았습니다.하지만이 블록은 BEGIN/END 블록과 쌍을 이뤄야하며, 일단 쿼리가 블록 안에 있으면 결과를 보는 것이 번거로워 보입니다. 필자가 보았던 예제는 커서를 설정 한 다음 커서를 반복하여 결과를 인쇄하거나 개별 값을 인쇄해야합니다.이 값은 더욱 귀찮습니다.
그래서 대신 내가/선언없이 참조/종료를 시작할 수 있기 때문에 변수를 사용하여 시도,하지만 난 변수의 값을 설정하는 데 문제가 있어요 :
variable customerid number;
customerid := 1234;
을하지만이 오류 얻을 :
을Error starting at line : 5 in command - customerid := 1234 Error report - Unknown Command
는 또한
select t.customerid into :customerid
from customer t
where t.customerid = 1234
을 시도하고 얻을 :
를SQL Error: ORA-01006: bind variable does not exist 01006. 00000 - "bind variable does not exist"
내 목표는 내가 값을 설정 상단에 내 ID 선언을하고, 스크립트를 실행 할 수 있어야하고, 내 모든 애드혹 출력에 표시를 선택하는 것입니다. 좀 더 명시 적으로
variable customerid number;
exec :customerid := 1234;
나 :
구문과 용어를 지워 주신 Alex에게 감사드립니다. 'end; 다음에 나오는'/'는 그 뒤에 다른 선택과 함께 시작/끝 블록을 따라갈 수 있다는 점에서 큰 차이가있었습니다. 그게 뭐야? – AaronLS
@AaronLS - [슬래시] (https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve004.htm) * 8-) [this] (https://docs.oracle)도 참조하십시오. .com/cd/E11882_01/server.112/e16604/ch_four.htm # sthref273) 및 [this] (https://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_four.htm#i1039663) . (그것들은 모두 SQL \ * Plus 문서에 대한 링크이지만, 디자인 상으로 대부분은 SQL Developer에 적용됩니다. 일반적으로 덜 잘 문서화되어 있습니다 ...) –