Makefile을 먼저 봐야 될 것 같은데여..
>>전병제 님께서 쓰시길<<
:: #include <sys/errno.h>
:: #include <stdio.h>
:: #include <netdb.h>
:: #include <string.h>
::
:: #define sql_msg sqlca.sqlerrm.sqlerrmc
::
:: EXEC SQL INCLUDE sqlca.h;
::
::
:: main() {
:: sqlEnv();
:: sqlLinitial();
:: sql_insert();
:: }
::
:: sqlEnv() {
::
:: char Env[100];
::
:: putenv("NLS_LANG=American_America.K016KSC5601");
:: sprintf(Env, "ORACLE_SIC=%S", "ORCL");
:: putenv(Env);
:: putenv("ORACLE_HOME=/oracle");
:: }
::
:: sqlLinitial() {
::
:: strncpy(userid.arr, "id", strlen("id"));
:: userid.len = strlen(userid.arr);
::
:: strncpy(passwd.arr, "password", strlen("password"));
:: userid.len = strlen(passwd.arr);
::
:: EXEC SQL connect :userid identified by :passwd;
:: EXEC SQL WHENEVER SQLERROR GOTO stop_st;
:: printf("\n Sqlplus initial Success\n");
:: }
::
::
::
:: sql_insert() {
::
:: EXEC SQL BEGIN DECLARE SECTION;
:: number user_no[4];
:: varchar user_name[10];
:: varchar user_data[10];
:: EXEC SQL END DECLARE SECTION;
::
:: memset(Sqlcmd, 0x00, sizeof(Sqlcmd));
:: sprintf(Sqlcmd, "INSERT INTO mytable (user_no, user_name, user_data) \
:: VALUES (%d, %s, %s)", \
:: 10, "chonbj", "seoul");
:: EXEC SQL EXECUTE IMMEDIATE :Sqlcmd;
:: //EXEC SQL WHENEVER SQLERROR GOTO stop_st;
::
:: printf("\n insert success");
::
:: EXEC SQL COMMIT WORK;
::
:: stop_st :
:: EXEC SQL ROLLBACK WORK;
:: printf("\n error message = %s", sql_msg);
:: }
:: 이렇게 해서 컴파일을 하니까....
:: /export/home/OraHome1/lib/libclntsh.so' is up to date 라고 나오고 실행파일도 생기지 않더라구요..
:: ..
:: 고수님들 왜 그런 거죠?
|