문제

두꺼비에서 실행되는 SQL 스크립트가 있습니다. 현재 나는 진술 후 성명서와 함께 명시되어 있습니다.

select such-and-such from somewhere;

delete other-thing from somewhere-else;

등등. 특정 ID를 작동시키기위한 복잡한 내부 쿼리가 있기 때문에 일부 조항 중 일부는 반복적입니다. 스크립트의 시작 부분에서 변수로 ID를 캡처 한 다음 해당 변수를 Clauses에서 사용하고 싶습니다. 그래서 다음과 같은 것 :

variable MY_ID = select the-ID from somewhere;

select such-and-such from somewhere where ID = @MY_ID;

분명히, 나는 그 구문을 만들고 있지만 그것이 내가 찾고있는 것입니다. 그러나 그것이 두꺼비 스크립트에서 가능한지 확실하지 않습니다. 나는 모든 것을 PL/SQL 블록으로 변환 할 수 있다는 것을 알고 있지만 여러 가지 이유로 그렇게하지 않아도 노력하고 있습니다.

PL/SQL 블록으로 변환하지 않고 두꺼비를 사용 하여이 작업을 수행하는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 이것이 당신이 원하는 것을 성취 할 것이라고 생각합니다. 바인드 변수를 선언하고 값을 삽입 한 다음 향후 설명에 사용할 수 있습니다.

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;

다른 팁

SQL*Plus 대체 변수를 사용합니다. 그들은 두꺼비에 의해 지원됩니다. F5를 눌러이 코드를 실행할 수 있습니다.

COLUMN VAR NEW_VALUE VAR_VALUE

SELECT 'SOMETHING' VAR FROM DUAL;  --this sets 'VAR_VALUE' = 'SOMETHING'

SELECT '&VAR_VALUE' FROM DUAL;  --this uses the value set by the previous stmt.

더 이상 적극적으로 Toad를 사용하지 않지만 바인드 매개 변수에 대한 값을 설정하기위한 메커니즘이 있어야합니다. select such-and-such from somewhere where ID = :myid; 두꺼비가 발생할 때마다 해당 매개 변수에 동일한 값을 공급합니다.

또는 세션 컨텍스트 값 또는 PL/SQL 패키지 변수를 생성 할 수 있습니다 (참고 : 전체 코드를 PL/SQL을 사용하는 것과 동일하지 않음). 보다 이 질문

두꺼비의 "계산 된 필드"기능은 올바른 방식으로 사용하면 실제로 매우 강력합니다. 쿼리 자체에 자신을 첨부하는 "토큰"스크립트 편집기에 지나지 않습니다. Query Design 편집기를 통해서만 사용할 수 있으며 기본 편집기가 아닌 SQL을 똑바로 쓸 수 있습니다.

힌트로, 다음에 Toad에서 설계된 쿼리를 만들고 복잡한 위치 또는 하위 쿼리를 만들어야 할 때 "계산 된 필드"기능을 시도하고 양식 옵션을 사용하여 기본적으로 조건을 주어진 열 또는 쿼리에 첨부하십시오. 당신은 그것이 얼마나 강력한 지 놀랄 것입니다. 또한 SQL 쿼리를 잘 읽기 쉬운 형식으로 유지하는 데 도움이됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top