database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 1852 게시물 읽기
No. 1852
[질문] pro*c 에서 blob에 넣은 텍스트 자료 빼는 방법 아시는분
작성자
문태준
작성일
2000-10-26 00:15
조회수
12,351

리눅스에서 pro*c 로 blob에 넣은 텍스트를 가져오는 방법 아시는분.

소스와 간단한 makefile 예를 알려주시거나 어디에 자료가 있다는것좀 알려주시면 감사하겠습니다.

 

이리저리 찾아봐도 아직 c에 대해서 잘 모르고 makefile에 대해서도 잘 모르고 pro*c 에 대해서도 잘 모르니 잘 안되네요. 컴파일에서도 에러 나고.

 

os : Redhat 6.2

oracle : Oracle 8i 816버전(linux)

 

blob.pc

 

/*

#include <oci.h>

#include <string.h>

#include <stdio.h>

#include <sqlca.h>

#include <stdlib.h>

#include <sqlcpr.h>

 

*/

 

#include <oci.h>

#include <stdio.h>

#include <string.h>

#include <sqlca.h>

#include <stdlib.h>

#include <sqlcpr.h>

#include <sys/stat.h>

#include <sys/types.h>

#include <fcntl.h>

#include <unistd.h>

 

#include <time.h>

#include <ctype.h>

 

#define TERM(X) ( X.arr[X.len] = '\0' )

#define SLEN(X) ( X.len = strlen((char *)X.arr) )

#define MAX_BUF 1000000

#define MAXSIZE 4096

 

#define READ_SIZE 60

 

EXEC SQL INCLUDE SQLCA;

 

/* Structure for VARCHAR */

typedef struct {ub4 len; text buf[1];} long_varrow;

 

EXEC SQL BEGIN DECLARE SECTION;

 

VARCHAR oracleid[20];

EXEC SQL TYPE long_varrow IS LONG VARRAW(MAXSIZE);

long_varrow my_vr;

 

EXEC SQL END DECLARE SECTION;

 

main()

{

OCIBlobLocator *Lob_loc;

unsigned int amt, offset=1;

unsigned char buff[MAX_BUF];

 

/*

EXEC SQL WHENEVER SQLERROR DO o_error(action_str);

*/

 

strcpy( (char *)oracleid.arr, "news/news" );

SLEN( oracleid );

 

/*

strcpy( action_str, "connecting to d/b" );

*/

 

EXEC SQL CONNECT :oracleid;

 

 

EXEC SQL ALLOCATE :Lob_loc;

EXEC SQL SELECT content into :Lob_loc from tdoc where id = 693636617;

amt = MAX_BUF;

EXEC SQL LOB READ :amt FROM :Lob_loc AT :offset INTO :my_vr;

 

EXEC SQL FREE :Lob_loc;

 

 

/*

EXEC SQL WHENEVER SQLERROR CONTINUE;

 

EXEC SQL ROLLBACK WORK RELEASE;

*/

}

 

/*

 

int o_error( action_str )

char *action_str;

{

int i;

char error_str[150];

 

 

EXEC SQL WHENEVER SQLERROR CONTINUE;

 

for ( i = 0; i < sqlca.sqlerrm.sqlerrml; i++ )

{

error_str = sqlca.sqlerrm.sqlerrmc;

}

error_str = '\0';

printf( "\nFailed with following Oracle error while %s:\n\n%s",

action_str, error_str );

 

EXEC SQL ROLLBACK WORK RELEASE;

exit(1);

}

 

*/

 

 

Makefile

 

############################################

# FILENAME : makefile

# DATE :1997.4.16

# MADE BY :SunHee Baek

############################################

include $(ORACLE_HOME)/precomp/demo/proc/demo_proc.mk

CC=gcc

 

ETC= page_view.o cgi.o view.o cookies.o cgi_ora.c

ETCSRC= $(ETC:.o=.c)

OBJECTS= $(NPROGOBJS)

CSOURCES= $(OBJECTS:.o=.c)

PCSOURCES= $(OBJECTS:.o=.pc)

 

CFLAGS=-I$(ORACLE_HOME)/include

LDFLAGS = -L$(ORACLE_HOME)/lib

 

CFLAGS= -g

 

OTHERS=makefile

 

PRODUCTS=view.cgi

 

all : pc.c view.cgi myrm

 

view.cgi :$(NPROGOBJS) $(ETC)

$(CC) -o $@ $(CFLAGS) $(NPROGOBJS) $(ETC) $(LDFLAGS) $(PROLDLIBS)

 

touch:

touch $(PCSOURCES) $(ETCSRC)

 

myrm :

/bin/rm -f tp* *.lis

 

copy :

cp $(PRODUCTS) /user/local/apache/cgi-bin

 

 

blob.o: blob.pc

make -f $(ORACLE_HOME)/precomp/demo/proc/demo_proc.mk PCCSRC=blob.pc I_SYM=include= pc1

$(CC) $(CFLAGS) $(INCLUDE) -c $*.c

 

cgi_ora.c:

make -f $(ORACLE_HOME)/precomp/demo/proc/demo_proc.mk PCCSRC=cgi_ora.pc I_SYM=include= pc1

$(CC) $(CFLAGS) -c $*.c

 

.c.o:

$(CC) $(CFLAGS) -c $*.c

 

 

제가 작성한게 아니라 이리저리 가져다가 짜집기했는데 안되네요.

 

make -f Makefile blob

Makefile:48: warning: overriding commands for target `.c.o'

/home/oracle/ora816/precomp/demo/proc/demo_proc.mk:123: warning: ignoring old co

mmands for target `.c.o'

make -f /home/oracle/ora816/precomp/demo/proc/demo_proc.mk PCCSRC=blob.pc I_SYM=

include= pc1

make[1]: Entering directory `/home/oracle/program_test'

proc iname=blob.pc include=. include=/home/oracle/ora816/precomp/syshdr include

=/home/oracle/ora816/precomp/public include=/home/oracle/ora816/rdbms/public inc

lude=/home/oracle/ora816/rdbms/demo include=/home/oracle/ora816/plsql/public inc

lude=/home/oracle/ora816/network/public

 

Pro*C/C++: Release 8.1.6.0.0 - Production on Wed Oct 25 23:51:14 2000

 

(c) Copyright 1999 Oracle Corporation. All rights reserved.

 

System default option values taken from: /home/oracle/ora816/precomp/admin/pcscf

g.cfg

 

Syntax error at line 132, column 3, file /usr/include/limits.h:

Error at line 132, column 3 in file /usr/include/limits.h

# include_next <limits.h>

..1

PCC-S-02014, Encountered the symbol "include_next" when expecting one of the fol

lowing:

 

a numeric constant, newline, define, elif, else, endif,

error, if, ifdef, ifndef, include, line, pragma, undef,

an immediate preprocessor command, a C token,

The symbol "newline," was substituted for "include_next" to continue.

 

make[1]: Leaving directory `/home/oracle/program_test'

gcc -g -I. -I/home/oracle/ora816/precomp/public -I/home/oracle/ora816/rdbms/publ

ic -I/home/oracle/ora816/rdbms/demo -I/home/oracle/ora816/plsql/public -I/home/o

racle/ora816/network/public -c blob.c

gcc -L/home/oracle/ora816/lib blob.o `cat /home/oracle/ora816/lib/sysliblist

` -ldl -lm -o blob

blob.o: In function `main':

/home/oracle/program_test/blob.c:336: undefined reference to `sqlcxt'

/home/oracle/program_test/blob.c:374: undefined reference to `sqlcxt'

/home/oracle/program_test/blob.c:411: undefined reference to `sqlcxt'

/home/oracle/program_test/blob.c:472: undefined reference to `sqlcxt'

/home/oracle/program_test/blob.c:509: undefined reference to `sqlcxt'

collect2: ld returned 1 exit status

make: *** [blob] Error 1

[Top]
No.
제목
작성자
작성일
조회
1860NLS_LANG = AMERICAN_KOREA.KO16KSC5601 로 설정해도 괜찮을까요?
한상헌
2000-10-26
5867
1862┕>Re: NLS_LANG = AMERICAN_KOREA.KO16KSC5601 로 설정해도 괜찮을까요?
소몰이
2000-10-26 15:38:34
6098
1859pro*c에서 컴파일 에러
이호재
2000-10-26
5895
1863┕>[참고]정확한 답변은 아니구요 pcscfg.cfg 수정하셨는지 확인을 해보시죠
문태준
2000-10-26 16:00:15
8099
1867 ┕>수정후에도 안됩니다.
이호재
2000-10-26 18:33:35
6001
1853[질문] ORA-01552 &lt;-- ㅠㅠ
javahead
2000-10-26
6151
1855┕>Re: [질문] ORA-01552 &lt;-- ㅠㅠ
소몰이
2000-10-26 03:10:48
6208
1856 ┕>Re: Re: [질문] ORA-01552 &lt;-- ㅠㅠ
javahead
2000-10-26 09:46:33
6200
1857  ┕>Re: Re: Re: [질문] ORA-01552 &lt;-- ㅠㅠ
jg
2000-10-26 10:26:17
6113
1861  ┕>Re: Re: Re: [질문] ORA-01552 &lt;-- ㅠㅠ
소몰이
2000-10-26 15:30:15
6639
1872   ┕>Re: Re: Re: Re: [감사] 감사합니다,,,,
javahead
2000-10-27 09:44:11
6226
1852[질문] pro*c 에서 blob에 넣은 텍스트 자료 빼는 방법 아시는분
문태준
2000-10-26
12351
1854┕>Re: [질문] pro*c 에서 blob에 넣은 텍스트 자료 빼는 방법 아시는분
소몰이
2000-10-26 03:05:10
6319
1873 ┕>Re: Re: [질문] pro*c 에서 blob에 넣은 텍스트 자료 빼는 방법 아시는분
문태준
2000-10-27 13:42:09
6091
1875  ┕>[pro*c] blob에서 텍스트 본문 뽑기 예제 올립니다. 소스랑 makefile
문태준
2000-10-29 11:05:41
16954
1850user 신규 등록은 어떻게 해야 하나요?
자수정
2000-10-25
6119
1851┕>Re: user 신규 등록은 어떻게 해야 하나요? -&gt; create user ...
문태준
2000-10-25 23:44:35
6294
1845자바 jdbc와 오라클과의 연동문제. 급합니다.
박정수
2000-10-25
6505
1844오라클 설치에러
흑흑
2000-10-25
5800
1846┕>Re: 오라클 설치에러
문태준
2000-10-25 21:12:17
5492
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다