2016-12-05 5 views
-4

저는 테스터이고 테스트 할 정보를 걸러 내기 위해 많은 선택 쿼리를 실행해야합니다.SQL에서 전역 변수를 정의하고 사용하는 방법

enter image description here

전역 변수를 확인하고 같은 값을 붙여 넣기의 그것을 대신 사용할 수있는 방법이 있나요?

enter image description here

샘플 코드 :

Select l.prod_package,m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select * From AKTTD90 
where cust_id in ('52317162090004'); 

Select * From Kndt7m0 
where cust_id in ('52317162090004'); 
+0

t-sql 변수를 사용하고 미리 설정할 수 있습니다. 그림 대신에 사용중인 코드를 게시하면 사용 방법을 알려줍니다. –

+2

사용중인 dbms는 어느 것입니까? (답은 제품마다 다를 수 있습니다.) – jarlh

+0

SQL 개발자를 사용하고 있습니다. 다음은 코드입니다. avtt7m0 m, avtt7l0 l에서 l.prod_package, m. *을 선택하십시오. 여기서 l.cust_id = '52317162090004'및 l.ar_id = m.ar_id 및 m.lc_st_code = 'ACT'; avtt7m0 m, avtt7l0 l에서 m. *을 선택하십시오. 여기서 l.cust_id = '52317162090004'및 l.ar_id = m.ar_id 및 m.lc_st_code = 'ACT'; 선택 * AKTTD90에서 cust_id in ('52317162090004'); 선택 * Kndt7m0에서 cust_id in ('52317162090004'); – VItas

답변

0

당신은 변수를 선언하고 그것에게 customer 값을 할당 할 수 있습니다.

DECLARE @Customer BIGINT='52371762090004' 

SELECT * FROM AKTTD90 WHERE [email protected] 

업데이트 : 위의 쿼리를 실행하십시오.

+0

그것은 작동하지 않습니다. SQL 개발자 4.1을 사용하는 이유는 무엇일까? 나는 SQL 쿼리에 대해 많이 모른다. 그래서 나는 당신이 나를 도울 수있는 모든 정보를 제공하지 않을 수 있습니다. 그러나 가능한 한 대답을 시도 할 것입니다. – VItas

+0

@VI 나는 대답을 업데이트했습니다. 수표. –

+0

오류가 발생합니다. 무엇이 잘못 될 수 있는지 알고 있습니까?오류 명령 라인 1에서 시작 : 는 KNDT7L0 FROM @Customer BIGINT = '52371762090004' SELECT * 선언 WHERE CUST_ID = 고객 오류 보고서 @ ORA-06550 : 줄 1, 열 아홉 : PLS-00103 :가 발생했습니다 기호 "@"다음 중 하나를 예상 할 때 : begin 함수 pragma 프로 시저 하위 유형 type - 현재 커서 삭제 06550. 00000 - "행 % s, 열 % s : \ n % s " * 원인 : 일반적으로 PL/SQL 컴파일 오류입니다. * 동작 : – VItas

0

이 질문은 SQL Server를 대상으로합니다. 질문에 특정 RDMS가 없습니다. 당신은) 다음 Set 그 다음 대부분의 경우 (사용 @로 시작해야합니다 변수를 (Declare 수 있습니다 :이이 같은 테이블 이름에 대한 변수로 어떤 일을 위해 사용할 수 없습니다

SET @CustomerID = 12345 
SELECT * FROM dbo.Customers WHERE CustomerID = @CustomerID 

참고 또한. 이러한 변수는 그들이 GO 문을 생존하지 않을 것이라는 점에서 실제로는 글로벌하지 참고이 작업을 수행하는

+0

SQL 개발자는이 구문을 마음에 들지 않습니다. 모든 정보를주지 않았다면 Sory. 그것은 내가 SQL에 익숙하기 때문에, 언급 할 중요한 것이 무엇인지 알지 못합니다. – VItas

+0

이 (가) mysql/sql 개발자 용으로 편집되었습니다. 이제는 작동 할 것입니다 (선언 부분은 mysql에 필요하지 않습니다). – jleach

0

하나의 옵션을 PL/SQL 패키지 변수이다.

create or replace package steptest as 
    procedure set(a number); 
    function get return number; 
end; 
/

create or replace package body steptest as 
    x number; 
    procedure set(a number) is 
    begin 
    x:=a; 
    end; 
    function get return number is 
    begin 
    return x; 
    end; 
begin 
    x:=0; 
end;  
/

그리고 일 할 수 있습니다 :

exec steptest.set(1234); 

select steptest.get from dual;