2014년 10월 1일 수요일

Select 시 Table 이름을 Dynamic 하게 이용하기[오라클개발자교육/오라클/ORACLE강좌/오라클교육잘하는곳/오라클교육추천/ORACLE실무교육/ORACLE/ORACLE교육/ORACLE학원/오라클실무교육]

-------------------------------------------------------------------------------- 
SELECT 시 TABLE 이름을 DYNAMIC 하게 이용하기 (PRO*C) 
Bulletin no : 11139  
-------------------------------------------------------------------------------- 
다음은 method 3 를 이용해 select 하는 table 명을 dynamic 하게 가져가는 
program 이다. 

#include  
#include  

#define USERNAME "scott" 
#define PASSWORD "tiger" 

#include  
#include  

EXEC ORACLE OPTION (ORACA=YES); 

char    *username = USERNAME; 
char    *password = PASSWORD; 
VARCHAR  dynstmt[80]; 
varchar     ename[10] ; 
int      deptno = 10; 
char     tab[10]; 
void sql_error(); 


main() 

    EXEC SQL WHENEVER SQLERROR DO sql_error("Oracle error"); 
    oraca.orastxtf = ORASTFERR; 

    EXEC SQL CONNECT :username IDENTIFIED BY :password; 
    puts("\nConnected to Oracle.\n"); 
  
/*exec sql declare s statement;*/ 
  
  gets(tab); 
    strcpy((char *)dynstmt.arr, 
        "SELECT  ename FROM "); 
   strcat((char*) dynstmt.arr,tab); 
  
  dynstmt.len = strlen((char *)dynstmt.arr); 

    puts((char *) dynstmt.arr); 
    printf("   table name is  %s\n", tab ); 
    printf("\nEmployee\n"); 
    printf("--------\n"); 
  /*sprintf (statement ,"select ename from :tab");*/ 
    EXEC SQL PREPARE S FROM :dynstmt; 
    EXEC SQL DECLARE C CURSOR FOR S; 
    EXEC SQL OPEN C ; 
    EXEC SQL WHENEVER NOT FOUND DO break; 

    for (;;) 
    { 
        EXEC SQL FETCH C INTO :ename; 

        ename.arr[ename.len] = '\0'; 
        puts((char *) ename.arr); 
        } 

    printf("\nQuery returned %d row%s.\n\n", sqlca.sqlerrd[2], 
        (sqlca.sqlerrd[2] == 1) ? "" : "s"); 

    EXEC SQL CLOSE C; 
    EXEC SQL COMMIT RELEASE; 
    exit(0); 



void sql_error(char *msg) 

    printf("\n%s", msg); 
    sqlca.sqlerrm.sqlerrmc[sqlca.sqlerrm.sqlerrml] = '\0'; 
    oraca.orastxt.orastxtc[oraca.orastxt.orastxtl] = '\0'; 
    oraca.orasfnm.orasfnmc[oraca.orasfnm.orasfnml] = '\0'; 
    printf("\n%s\n", sqlca.sqlerrm.sqlerrmc); 
    printf("in "%s..."\n", oraca.orastxt.orastxtc); 
    printf("on line %d of %s.\n\n", oraca.oraslnr, 
       oraca.orasfnm.orasfnmc); 

    EXEC SQL WHENEVER SQLERROR CONTINUE; 
    EXEC SQL CLOSE C; 
    EXEC SQL ROLLBACK RELEASE;!!!! exit(1); 


 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272043
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111484
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-151248
52 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 오라클자바…01-311404
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-311273
50 [기업100%환급]Spring ,MyBatis,Hibernate실무과정(스프링개발자… 오라클자바…01-311092
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191407
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111237
47 [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… 오라클자바…01-031733
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-272043
45 [기업100%환급,평일주간]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-191500
44 [평일야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,Jav… 오라클자바…12-141482
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111484
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-091189
41 [평일야간, 주말]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011406
40 [기업100%환급]안드로이드개발자과정(Android전액환급교육) 오라클자바…12-011551
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011057

댓글 없음:

댓글 쓰기