2014-07-24 3 views
0

나는이기본 값 매개 변수를 갖고 시저를 저장 호출

PROCEDURE store_cust_response(
    p_id NUMBER DEFAULT NULL, 
    p_camp_id NUMBER DEFAULT NULL, 
    p_offer_id NUMBER DEFAULT NULL 
) 

VBScript로 매개 변수를 생성, 내가 서명의 각 매개 변수를 생성해야 할 서명이 저장 프로 시저? 그렇다면 기본 값을 어떻게 호출합니까?

Set conncmdA = CreateObject("adodb.command") 
conncmdA.CommandText = "foo.store_cust_response" 
conncmdA.CommandType = 4 'adCmdStoredProc 
conncmdA.ActiveConnection = conntemp 

conncmdA.Parameters.Append conncmdA.CreateParameter("p_id", adInteger, adParamInput, 4) 
conncmdA.Parameters.Append conncmdA.CreateParameter("p_camp_id", adInteger, adParamInput, 4) 
conncmdA.Parameters.Append conncmdA.CreateParameter("p_offer_id", adInteger, adParamInput, 4) 

conncmdA.Parameters(0) = null 
conncmdA.Parameters(1) = camp_id 
conncmdA.Parameters(2) = offer_id 

conncmdA.Execute 
Set conncmdA = Nothing 
+0

'store_cust_response (p_id => 324)'와 같은 것을 시도해 봤니? 이와 같이 프로 시저를 호출하면 p_camp_id 및 p_offer_id는 기본값을 갖게됩니다. 또한'store_cust_response (p_id => 324, p_offer_id => 432)'와 같이 호출 할 수 있으며'p_camp_id '매개 변수는 기본값을 갖습니다. – zaratustra

+0

@ zaratustra : VBScript에서 저장된 proc 파일을 호출해야합니다. 내 편집을 원래 게시물로 보시기 바랍니다. – Robotron

+0

스토어드 프로 시저를 호출하는 방법을 알려주십시오. 이미 보여준 코드 위에 한 줄 더 있어야합니다. – zaratustra

답변

1

IIRC 기본값은 프로 시저가 PL/SQL에서 호출 된 경우에만 적용됩니다. PL/SQL 컴파일러가 PL/SQL에서 프로 시저를 호출 할 때 모든 매개 변수를 제공하지 않으면 데이터 사전의 기본값을 가져옵니다. 프로 시저를 다른 방법으로 호출하는 경우 모든 매개 변수를 제공해야합니다. "기본 값을 호출"하는 한 - 그렇게 할 수는 없습니다. 값이 서명의 기본값과 같더라도 값을 제공해야합니다. 난 당신이 디폴트 값을 얻기 위해 데이터 사전을 조회 할 수도있을 것 같군요 -이와

SELECT a.DEFAULT_VALUE 
    FROM SYS.DBA_ARGUMENTS a 
    WHERE a.OBJECT_NAME = whatever AND 
     a.ARGUMENT_NAME = whatever; 

하나의 문제 같은 것을 DBA_ARGUMENTS.DEFAULT_VALUE은 (처리하는 BLOB와 유사하지만, 더 성가신) 긴 것을하는 당신 ' 가져오고 해석해야합니다.

행운을 빈다.

관련 문제