1. ์ฉ์ด์ ๋ฆฌ
- ํ๋ฆฌ ์ปดํ์ผ๋ฌ(Pre-Compiler) : ๊ณ ๊ธ์ธ์ด๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ์ปดํ์ผ ์ ์ ์ํํ๋ ์์ , ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์ค๊ฑฐ๋ ์ฝ๋์ ์ฝ์ ๋ SQL๋ฌธ์ DB์ ์ฐ๊ฒฐํ๋ ์์ ์ ์ํ
- ์ปดํ์ผ๋ฌ(Compiler) : ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์์ค์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ๊ณผ์ ๋ฐ ๋๊ตฌ
2. Pro*C
- C Program์์ DB์ ์ ๊ทผ ๋ฐ ์กฐ์ํ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ์ธ์ด
- Oracle์์ ์ ๊ณตํ๋ ์ ์ฒ๋ฆฌ ์ปดํ์ผ๋ฌ (Pre-Compiler)
- C ํ๋ก๊ทธ๋จ ์ฝ๋ ์์ SQL ๋ช ๋ น์ด ์ฌ์ฉ ๊ฐ๋ฅ
- ".pc" ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก C์ธ์ด ๋ฌธ๋ฒ์ ๋ฐ๋ฆ
3. Pro*C ์์ ์์
- Pro*C ํ๋ก๊ทธ๋จ ์์ฑ
- Pro*C๋ฅผ ์ด์ฉํด์ ํ๋ก๊ทธ๋จ์ ํ๋ฆฌ ์ปดํ์ผ
- ํ๋ก๊ทธ๋ ์ปดํ์ผ ํ ์ค๋ธ์ ํธ ํ์ผ ์์ฑ
- ์ค๋ธ์ ํธ ํ์ผ ๋งํฌ ํ ์คํ ๊ฐ๋ฅํ ํ์ผ ์์ฑ
- ํ๋ก๊ทธ๋จ ์คํ์์๋ ์๋์ ๊ฐ์
์์ ์์ : filename.pc -> filename.c -> filename.o -> filename*
4. HOST ๋ณ์
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์์ฉ ํ๋ก๊ทธ๋จ ๋ด์์๋ ๋ณ์๋ก์ ์ญํ ์ ์ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์ฌ์ฉ๋๋ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ๊ณผ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ์ธ๋์ด์ผ ํจ
- ์ฌ์ฉ๊ฐ๋ฅ ์๋ฃํ : char, char[], short, int, long, float, double, varchar[]
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user_name[32];
int user_number, user_age;
float salary;
EXEC SQL END DECLARE SECTION;
5. SQLCA
- SQLCA : SQL Communication Area
- Pro*C์์ ์ฟผ๋ฆฌ ์คํ์, struct sqlca sqlca๋ผ๋ ์ ์ญ๋ณ์์ ์ค๋ฅ ์ํ๋ฅผ ์ ์ฅ ๋ฐ ๋ฆฌํด
- sqlca ์ฌ์ฉํ๊ธฐ์ํด sqlca.h ๋๋ SQLCA Include ์ ์ธ ํ์
#include <sqlca.h>
๋๋
EXEC SQL INCLUDE SQLCA;
/* sqlca ๊ตฌ์กฐ์ฒด ๊ตฌ์กฐ */
struct sqlca
{
char sqlcaid[8]; /* "SQLCA" ๋ฌธ์์ด์ด ์ ์ฅ๋จ */
long sqlabc; /* sizeof(struct sqlca) ๊ฐ*/
long sqlcode; /* ์ค๋ฅ๊ฐ ๋ฐ์์ oracle error code ์ ์ฅ */
struct
{
unsigned short sqlerrml; /* ์ค๋ฅ๋ฉ์์ง ๊ธธ์ด */
char sqlerrmc[70]; /* ์ค๋ฅ๋ฉ์์ง */
} sqlerrm;
char sqlerrp[8]; /* ์์ฝ๋จ */
long sqlerrd[6];
char sqlwarn[8];
char sqlext[8]; /* ์์ฝ๋จ */
};
๊ตฌ๋ถ | ๋ด์ฉ |
sqlca.sqlcode == 0 | ์ ์ ์ฒ๋ฆฌ |
sqlca.sqlcode == 1403 | ์กฐํ๋ ๋ฐ์ดํฐ ์์ |
sqlca.sqlcode == 100 | Insert ๋ฐ์ดํฐ ์์ (์ปดํ์ผ ์ต์ MODE=ANSI์ธ ๊ฒฝ์ฐ) |
sqlca.sqlcode < 0 | ์ค๋ฅ ๋ฐ์ |
sqlca.sqlerrd[2] | select ์กฐํ ๊ฑด์ fetch ๋์ ์กฐํ ๊ฑด์ Insert, Update, Delete ๊ฑด์ |
sqlca.sqlerrd[4] | ์ค๋ฅ๊ฐ ๋ฐ์ํ sql๋ฌธ ์์น |
6. ORACA
- ORACA : ORACLE Communication Area
- SQLCA ์์ต์์ ์ป๋ ์ ๋ณด๋ณด๋ค ๋ง์ ์ ๋ณด๋ฅผ ํ๋ ๊ฐ๋ฅ
- ORACA๋ ์๋์ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์
- ํ์ฌ SQL๋ฌธ์ ํ ์คํธ(orastxt)
- ์๋ฌ๊ฐ ์๋ ํ์ผ์ ์ด๋ฆ(orasfrm)
- ์๋ฌ๊ฐ ์๋ ํ์ ๋ฒํธ(oraslnr)
- SQL ๋ฌธ ๋ณด์กด ํ๋๊ทธ(orastxtf) : ์ด ํ๋๊ทธ๋ฅผ ์ค์ ํจ์ผ๋ก์จ ์ด๋ ์กฐ๊ฑด์ผ๋ก ๋ฌธ์ ๋ณด์กดํ ๊ฒ์ธ์ง๋ฅผ ์ ํ ๊ฐ๋ฅ
- ๋ํดํธ ๊ฐ. SQL ๋ฌธ์ ๋ณด์กดํ์ง ์์
- SQLERROR๊ฐ ์๋ SQL ๋ฌธ๋ง์ ๋ณด์กด
- SQLERROR ๋ฐ SQLWARN์ด ์๋ ๋ฌธ์ ๋ณด์กด
- SQL ๋ฌธ์ ์ ๋ถ ๋ณด์กด
- DEBUG ์ฒ๋ฆฌ์ ์ฌ์ฉ ํ๊ฐ ํ๋๊ทธ: ์ด ํ๋๊ทธ๋ 0์ด๋ 1์ ์ค์ ํ ์ ์์ผ๋ฉฐ, 1์ ์ค์ ํ ๊ฒฝ์ฐ์๋ ๋ชจ๋ DEBUG ์ฒ๋ฆฌ๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ปค์ ์บ์ ๊ฒ์ฌ(orahchf)
#include <oraca.h>
๋๋
EXEC SQL INCLUDE ORACA;
[Pro*C] SQLCA / ORACA
SQL ๋ฌธ์ฅ์ ๋ํ ๊ฒฝ๊ณ ๋ ์ค๋ฅ์ ์ํ๋ฅผ ๊ธฐ์ ํ๋ ๊ตฌ์กฐ์ฒด SQL ํต์ ์์ญ(SQLC...
blog.naver.com
[๋ฒ์ญ] ๋ฐ์ดํฐ์ ํ๊ณผ ํธ์คํธ๋ณ์( Datatypes and Host Variables ) - 01
๋ชฉ ์ฐจโฃ ์ค๋ผํด ๋ฐ์ดํฐ ์ ํ (Oracle Datatypes) โฃ ํธ์คํธ ๋ณ์ ( Host Variables ) โฃ ์ง์์ ๋ณ์ ( Indicator Variables ) โฃ VARCHAR ๋ณ์ ( VARCHAR Variables ) โฃ ์ปค์ ๋ณ์ ( Cursor Variables ) โฃ CONTEXT ๋ณ์ ( CONTEXT Varia
unabated.tistory.com
Oracle Pro*C ์ค๋ฌดํ๋ก์ ํธ ํ์ฉ์_1
PART 1. Pro*C ๊ฐ์ 1์ฅ. Pro*C ์๊ฐ์ ๊ธฐ๋ณธ ํน์ง 2์ฅ. Pro*C ์ค๋ฅ ์ง๋จ๊ณผ ์ฒ๋ฆฌ 2-1 SQLCA 2-2 ORACA 2-3 ์ค๋ฅ ๊ฒ์ถ ๋ฐ ์ฒ๋ฆฌ 1. ๋ช ์์ ์ค๋ฅ ์ฒ๋ฆฌ - SQL ๋ฌธ์ฅ์๋ง๋ค ์ค๋ฅ ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ ์ง์ ํ์ฌ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌ - SQLCA ๊ตฌ
jennet28.tistory.com
[PRO*C] PRO*C ๊ฐ๋ , ์ฌ์ฉ์ด์ , ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๊ณผ์
Pro*C ๋? - ์ค๋ผํด์์ ์ ๊ณตํ๋ ์ ์ฒ๋ฆฌ ์ปดํ์ผ๋ฌ : Pre-Compiler > Cํ๋ก๊ทธ๋จ์ ํฌํจ๋ SQL ๋ฌธ์ฅ -> Cํจ์ ํธ์ถ๋ก ๋ณํํ๋ค. - ์ค๋ผํด Pro*C์ ํน์ง > ์ ์ฒ๋ฆฌ ์ปดํ์ผ๋ฌ > C ํ๋ก๊ทธ๋จ ์ฝ๋ ์์ "SQL ๋ช ๋ น์ด"
jeongdev55.tistory.com
Pro*C๋?
Pro*C๋? "ProC"๋ Oracle์ฌ์์ ์ ๊ณตํ๋ SQL๊ณผ C ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๊ฒฐํฉํ ํ์ฅ์ด๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ฉด C ํ๋ก๊ทธ๋จ ๋ด์์ SQL ๋ฌธ์ ์ฝ๊ฒ ํฌํจ์ํฌ ์ ์๋ค. ProC๋ C ํ๋ก๊ทธ๋จ์์ SQL ๋ฌธ์ ์ฝ๊ฒ ์คํํ๊ณ
myyblog.tistory.com
[Pro*C] Pro*C ์๊ฐ์ ๊ธฐ๋ณธ ํน์ง ๋ฐ ์ค๋ฅ ์ง๋จ
1. Pro*C ์๊ฐ์ ๊ธฐ๋ณธ ํน์ง 1-1. Pro*C ๊ฐ์SQL ๋ฌธ์ ์ ์ฐจํ ์ธ์ด๊ฐ ์๋๋๋ค. ๊ทธ๋์ ์ค๋ผํด์ ํฌํจํ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ PL/SQL์ด๋ผ๋ ์ ์ฐจํ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. PL/SQL์ ์ค๋ผํด ๋ด๋ถ์์ ์คํ๋๋
12bme.tistory.com
pro*c ๋ - ์ด๋ณด์๋ฅผ ์ํ ๊ฐ๋ ์ค๋ช
์ด๊ธ์ ์ด๋ณด์๋ฅผ ์ํ ๊ฒ์ผ๋ก Pro*C๋ ๋ฌด์์ธ๊ฐ๋ฅผ ์ค๋ช ํด ๋์ ๊ฒ์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋ฅ ์ฐธ์กฐ๋ง ํ์๊ธฐ ๋ฐ๋๋๋ค. ์๋ณธ ์ถ์ฒ : http://home.bcline.com/hoya1/ 1.1 Pro*C๋? ORACLE RDBMS์ ์ค๋น๋ Pro*Cํด์, SQL๋ฌธ์ ํฌ
kikook.tistory.com
C์ธ์ด03_Pro*C์ ์ดํด
์ด ๊ธ์ https://kikook.tistory.com/499 ๊ธ์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ ์ ๋๋ค.
yoon-ddo.github.io
Pro*C 5-1. ์ค๋ฅ ์ฒ๋ฆฌํ๊ธฐ (SQLCA)
์ค๋ฅ ์ฒ๋ฆฌํ๊ธฐ Pro*C์์ ์คํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์์ ๋์ ์ค๋ฅ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ต๋๋ค. 1. SQLCA(SQL Communication Area)๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ - ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด struct sqlca sqlca; ์ ์ญ ๊ตฌ์กฐ์ฒด ๋ณ
www.it-note.kr
'๊ฐ๋ฐ๐ป > Oracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] ์ค๋ผํด ๋ฌธ์ํจ์, LENGTH, LENGTHB, SUBSTR, SUBSTRB (0) | 2024.07.07 |
---|---|
[Oracle] ๋ฐ์ดํฐ ๋ง์คํน (0) | 2024.07.02 |
[Oracle] ROWID (2) | 2024.03.14 |
[DB] Orange ๋จ์ถํค (2) | 2023.12.07 |