콘텐츠로 이동

SQLProcedures

SQLProcedures#

특정 테이터 소스에 저장된 프로시저 이름들의 목록을 반환한다.

Unicode SQLProceduresW()의 동작은 SQLProcedures()와 동일하다.

구 문#

SQLRETURN  SQLProcedures (
    SQLHSTMT        stmt,
    SQLCHAR *       cName,
    SQLSMALLINT     cNameLength,
    SQLCHAR *       sName ,
    SQLSMALLINT     sNameLength,
    SQLCHAR *       pName,
    SQLSMALLINT     pNameLength );

인 자#

자료유형 인자 사용 설명
SQLHSTMT stmt 입력 명령문 핸들
SQLCHAR * cName 입력 프로시저 카탈로그 이름
SQLSMALLINT cNameLength 입력 *cName의 문자 개수
SQLCHAR * sName 입력 프로시저 스키마 이름
SQLSMALLINT sNameLength 입력 *sName의 문자 개수
SQLCHAR * pName 입력 프로시저 이름, null pointer일 수 없다.
pName은 문자열 탐색 유형을 포함할 수 없다.
SQLSMALLINT pNameLength 입력 *pName의 문자 개수

결괏값#

SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR

설 명#

SQLProcedures()는 요구된 범위 내에서 모든 프로시저의 목록을 나열한다. 사용자는 이러한 프로시저들을 실행할 수 있는 사용 권한을 가질 수도 있고 없을 수도 있다.

SQLProcedures()는 PROCEDURE_CAT, PROCEDURE_SCHEM, 그리고 PROCEDURE_NAME에 의해 순서화된 표준 결과 집합 형태로 결과들을 반환한다.

SQLProcedures()는 모든 프로시저들을 반환하지 않을 수도 있다. 애플리케이션은 프로시저가 SQLProcedures()에 의해 반환 여부와 상관없이 유효한 프로시저를 사용할 수 있다. SQLProcedures()에 의해 반환되는 열은 [표 2-4]와 같다.

열 이름 열번호 자료 유형 설명
PROCEDURE_CAT 1 VARCHAR 항상 NULL이 반환
PROCEDURE _SCHEM 2 VARCHAR 프로시저 스키마 식별자
DB에 적절하지 않은 경우 NULL
PROCEDURE _NAME 3 VARCHAR (NOT NULL) 프로시저 식별자
NUM_INPUT_PARAMS 4 N/A 나중 용도로 예약됨.
애플리케이션은 이 결과 열에 반환된 데이터를 적용하면 않된다.
NUM_OUTPUT_PARAMS 5 N/A 나중 용도로 예약됨.
애플리케이션은 이 결과 열에 반환된 데이터를 적용하면 않된다.
NUM_RESULT_SETS 6 N/A 나중 용도로 예약됨.
애플리케이션은 이 결과 열에 반환된 데이터를 적용하면 않된다.
REMARKS 7 VARCHAR 프로시저에 대한 설명 정보
PROCEDURE_TYPE 8 SMALLINT 프로시저 타입 정의
- SQL_PT_UNKNOWN: 프로시저가 임의의 값을 반환했는지를 결정할 수 없다.
- SQL_PT_PROCEDURE: 반환된 객체가 프로시저. 반환 값을 가지고 있지 않다.
- SQL_PT_FUNCTION: 반환된 객체가 함수. 반환 값을 가지고 있다.

[표 2‑4] SQLProcedures()에 의해 반환되는 열

진 단#

SQLSTATE 설명 부연설명
08S01 통신 회선 장애 (데이터 송수신 실패) Altibase CLI 드라이버와 DB간에 함수 처리가 완료되기 전에 통신 회선 실패
HY000 일반 오류
HY009 유효하지 않은 인자 (null pointer) 사용 cName이 null pointer 임. sNme, pName이 null pointer 임

관련 함수#

SQLBindCol
SQLFetch
SQLProcedureColumns

예 제#

< $ALTIBASE_HOME/sample/SQLCLI/demo_meta5.cpp 참고 >

if (SQLProcedures(stmt,
                  NULL, 0,
                  NULL, 0,
                  NULL, 0) != SQL_SUCCESS)
{
    execute_err(dbc, stmt, "SQLProcedures");
    SQLFreeStmt(stmt, SQL_DROP);
    return SQL_ERROR;
}