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;
}