반응형 Oracle8 Pro*C SQLCA : SQL 통신 영역 ORACA : 오라클 통신 영역 SQLCA 는 예외와 경고, 에러코드, 진단등의 정보가 있다. SQLCA를 사용하기 위하여 precomp/public 아래에 있는 sqlca.h 퍼일을 include 하거나 Pro*C 문법으로 'EXEC SQL INCLUDE SQLCA;' 를 사용한다. sqlca 파일에는 SQLCA 구조체가 있다. "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다." SQLCA 주요 정보는 다음과 같다. - sqlca.sqlcode : 가장 최근의 에러코드, 0은 정상 실행 - sqlca.sqlerrm.sqlerrmc : sqlcode 에 대응되는 에러메시지 - sqlca.sqlerrd[2] : 처리된 행의 갯수 SQL.. 2022. 12. 29. Oracle 컬럼 값 연결하여 SELECT 하기 SELECT id, first_name || last_name AS FullName FROM family; ID FULLNAME 1 1001 JamesGreen 2 1002 PeterKing 3 1003 PaulHaan 4 1004 JohnAustin 5 1005 AbrahamLorentz "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다." 2022. 2. 21. Pro-C 커서 패치 예제 #define SQL_CD sqlca.sqlcode; #define SQLCA_STORAGE_CLASS extern EXEC SQL INCLUDE sqlca; void CMyProc::PrepareCursor() { EXEC SQL BEGIN DECLARE SECTION; char strSelect[1024]; EXEC SQL BEGIN DECLARE SECTION; memset(strSelect, 0x00, sizeof(strSelect)); sprintf(strSelect, " SELECT ₩n" " SEQID, CODE ₩n" " FROM mytable SUBPARTITION(SP%d) ₩n" " WHERE STATE='1' ₩n", 1); try { EXEC SQL PREPARE PREF_TB_R.. 2021. 11. 30. Oracle 5분간 실패율 10%이상 집계 쿼리 SELECT COUNT(*) AS RESULT FROM ( SELECT FAIL_CNT / TOTAL_CNT AS RATE FROM ( SELECT S1.CNT AS SUCCESS_CNT , S2.CNT AS FAIL_CNT S1.CNT + S2.CNT AS TOTAL FROM (SELECT COUNT(*) AS CNT FROM TABLE1 WHERE DATE1 > SYSDATE - 1/24/12 AND STS = 1) S1, (SELECT COUNT(*) AS CNT FROM TABLE1 WHERE DATE1 > SYSDATE - 1/24/12 AND STS = 0) S2 ) S3 WHERE S3.TOTAL > 0 -- 0으로 나누면 안되므로 ) S4 WHERE RATE > 0.1; 2021. 11. 22. 오라클 Pro*C 몇 분 지났는지 정보구하기 SELECT (SYSDATE - 기준시간) * 24 * 60 AS TIMEDIFF FROM DUAL; 기준시간이 TIMESTAMP 이면 DATE 형으로 cast 한다 SELECT (SYSDATE - cast(TimeStamp as DATE)) * 24 * 60 AS TIMEDIFF FROM DUAL; 2021. 11. 16. 오라클 ProC 분단위 기간 정보 구하기 기간 정보 구하는 예제입니다. 나중 시간에서 이전 시간을 빼주면 됩니다. 분단위의 차이를 구하기 위하여 24 *60 를 곱해줍니다. TIMESTAMP형식은 DATE 형으로 cast 해줍니다. SELECT (cast(TIMESTAMP2 as DATE) - cast(TIMESTAMP1 as DATE)) * 24 *60 AS DURATION FROM DUAL; 시간문자열은 TO_DATE 로 형변환하여 계산합니다. SELECT TO_DATE('시간문자열2','시간형식') - TO_DATE('시간문자열1', '시간형식') FROM DUAL; 2021. 11. 15. Oracle 두 시간 사이의 차이 구하기 * 몇 분 차이인지 구하기 SELECT (Date1 - Date2) * 24 * 60 FROM DUAL; 2021. 10. 23. PL/SQL 데이터 타입 스칼라 타입 NUMBER : 최대 38자리의 숫자 데이터 CHAR : 고정된 길이의 문자 데이터 (기본값 1Byte) VARCHAR2 : 가변적 길이의 문자 데이터 DATE : 7바이트의 고정 길이로 저장 BOOLEAN : TRUE, FALSE, NULL 콤포지트 타입 RECORD 타입 : 여러개의 필드를 소유 가능 TABLE 타입 : 테이블의 열처럼 동일한 열에 여러개의 값을 보유 가능 중첩 테이블 VARRAY 참조 타입 REF CURSOR : 처리 대상 데이터를 참조 ---------------------------------------------------- %TYPE 속성 칼럼이나 이미 정의되어 있는 변수의 데이터 타입을 참조 %ROWTYPE 속성 테이블의 행구조를 참조 --------------.. 2021. 7. 17. 이전 1 다음 반응형