2014년 9월 22일 월요일

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

Pro*C에서 Select 시 Table 이름을 Dynamic 하게 이용하기  
  
  
-------------------------------------------------------------------------------- 
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-271961
 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취…오라클자바…12-111440
53 [평일주간]100%환급6건,안드로이드,자바,C#,스프링3.2,SQL,힌트/… 오라클자바…03-151197
52 [주말주간]C#, ASP.NET마스터 오라클자바…01-311359
51 [평일,기업100%환급]SQL기초에서 Schema Object까지 오라클자바…01-311139
50 [평일야간]HTML5, CSS3,Ajax, jQuery마스터과정 오라클자바…01-311046
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 오라클자바…01-191359
48 [평일주간,평일야간,주말]안드로이드개발자과정 오라클자바…01-111192
47 [평일야간,주말주간]JAVA,Network&JSP&Spring,MyBatis,Hibernate 오라클자바…01-031696
46 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… 오라클자바…12-271961
45 [평일야간,주말]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis… 오라클자바…12-191462
44 웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX,JavaScript) 오라클자바…12-141428
43 [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… 오라클자바…12-111440
42 [평일,기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 오라클자바…12-091158
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011354
40 [기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍(평일주간(단기)… 오라클자바…12-011519
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011021

댓글 없음:

댓글 쓰기