⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 otlv4.h

📁 把oracle库中的数据插入到mysql表中 oracle2mysql
💻 H
📖 第 1 页 / 共 5 页
字号:
};inline void convert_date(otl_datetime& t,const otl_oracle_date& s){ t.year=(OTL_SCAST(int, s.century-100)*100+(OTL_SCAST(int, s.year-100))); t.month=s.month; t.day=s.day; t.hour=s.hour-1; t.minute=s.minute-1; t.second=s.second-1;}inline void convert_date(otl_oracle_date& t,const otl_datetime& s){ t.year=OTL_SCAST(unsigned char, ((s.year%100)+100)); t.century=OTL_SCAST(unsigned char, ((s.year/100)+100)); t.month=OTL_SCAST(unsigned char, s.month); t.day=OTL_SCAST(unsigned char, s.day); t.hour=OTL_SCAST(unsigned char, (s.hour+1)); t.minute=OTL_SCAST(unsigned char, (s.minute+1)); t.second=OTL_SCAST(unsigned char, (s.second+1));}class otl_null{public:#if (defined(_MSC_VER)&&(_MSC_VER==1200)) int dummy; // this is to fix a compiler bug in VC++ 6.0#endif otl_null(){} ~otl_null(){}};class otl_column_desc{public:  char* name;  int  dbtype;  int  otl_var_dbtype;#if defined(_WIN64)  __int64 dbsize;#else  int  dbsize;#endif  int  scale;#if defined(_WIN64)  __int64 prec;#else  int  prec;#endif  int  nullok;#if defined(OTL_ORA_UNICODE)||defined(OTL_ORA_UTF8)  int charset_form;  int char_size;#endif  otl_column_desc()  {    name=0;    name_len_=0;    dbtype=0;    otl_var_dbtype=0;    dbsize=0;    scale=0;    prec=0;    nullok=0;#if defined(OTL_ORA_UNICODE)    charset_form=0;    char_size=0;#endif  }  ~otl_column_desc()  {    delete[] name;  }  otl_column_desc& operator=(const otl_column_desc& desc)  {    if(name_len_>=desc.name_len_)      strcpy(name,desc.name);    else if(name==0 && desc.name!=0){      name=new char[desc.name_len_];      name_len_=desc.name_len_;      strcpy(name,desc.name);    }else if(name_len_<desc.name_len_ && desc.name!=0){      delete[] name;      name=new char[desc.name_len_];      name_len_=desc.name_len_;      strcpy(name,desc.name);    }    dbtype=desc.dbtype;    otl_var_dbtype=desc.otl_var_dbtype;    dbsize=desc.dbsize;    scale=desc.scale;    prec=desc.prec;    nullok=desc.nullok;#if defined(OTL_ORA_UNICODE)||defined(OTL_ORA_UTF8)    charset_form=desc.charset_form;    char_size=desc.char_size;#endif    return *this;  }  void set_name(const char* aname,const int aname_len=0)  {    int len;    if(aname_len==0)      len=OTL_SCAST(int,strlen(aname))+1;    else      len=aname_len+1;    if(name_len_<len){      if(name)delete[] name;      name=new char[len];      name_len_=len;      for(int i=0;i<len-1;++i)        name[i]=aname[i];      name[len-1]=0;    }  }protected:  int name_len_;};class otl_var_desc{public:  int  param_type;  int  ftype;  int  elem_size;  int  array_size;  int  pos;  int  name_pos;  char name[128];  int  pl_tab_flag; otl_var_desc() {  param_type=0;  ftype=0;  elem_size=0;  array_size=0;  pos=0;  name_pos=0;  name[0]=0;  pl_tab_flag=0; } ~otl_var_desc(){} void copy_name(const char* nm) {  if(!nm)   name[0]=0;  else{   strncpy(name,nm,sizeof(name));   name[sizeof(name)-1]=0;  } }};const int otl_var_none=0;const int otl_var_char=1;const int otl_var_double=2;const int otl_var_float=3;const int otl_var_int=4;const int otl_var_unsigned_int=5;const int otl_var_short=6;const int otl_var_long_int=7;const int otl_var_timestamp=8;const int otl_var_varchar_long=9;const int otl_var_raw_long=10;const int otl_var_clob=11;const int otl_var_blob=12;const int otl_var_refcur=13;const int otl_var_long_string=15;const int otl_var_db2time=16;const int otl_var_db2date=17;const int otl_var_tz_timestamp=18;const int otl_var_ltz_timestamp=19;const int otl_var_bigint=20;#if defined(OTL_ORA_UNICODE)||defined(OTL_ORA_UTF8)const int otl_var_nchar=21;const int otl_var_nclob=22;#else#endifconst int otl_var_raw=23;const int otl_var_lob_stream=100;const int otl_bigint_str_size=40;class otl_long_string{public:  unsigned char* v;  int length;  int extern_buffer_flag;  int buf_size;  bool this_is_last_piece_; otl_long_string(const int buffer_size=32760,const int input_length=0) {   this_is_last_piece_=false;   if(buffer_size==0){     v=0;     length=0;     extern_buffer_flag=0;   }else{     extern_buffer_flag=0;     length=input_length;     buf_size=buffer_size;     v=new unsigned char[buffer_size+1];     memset(v,0,buffer_size);   } } otl_long_string (const void* external_buffer,  const int buffer_size,  const int input_length=0) {   this_is_last_piece_=false;   extern_buffer_flag=1;   length=input_length;   buf_size=buffer_size;   v=OTL_RCAST(unsigned char*, OTL_CCAST(void*, external_buffer)); }  otl_long_string& operator=(const otl_long_string& s)  {    this_is_last_piece_=s.this_is_last_piece_;    if(s.extern_buffer_flag){      if(!extern_buffer_flag)        delete[] v;      v=s.v;      length=s.length;      extern_buffer_flag=s.extern_buffer_flag;      buf_size=s.buf_size;    }else{      if(extern_buffer_flag){        v=new unsigned char[s.buf_size];        buf_size=s.buf_size;      }else if(buf_size<s.buf_size){        delete[] v;        v=new unsigned char[s.buf_size];        buf_size=s.buf_size;      }      length=s.length;      extern_buffer_flag=s.extern_buffer_flag;      memcpy(v,s.v,length);      if(length<buf_size&&s.v[length]==0)        v[length]=0;    }    return *this;  }  otl_long_string(const otl_long_string& s)  {    this_is_last_piece_=s.this_is_last_piece_;    length=s.length;    extern_buffer_flag=s.extern_buffer_flag;    buf_size=s.buf_size;    if(s.extern_buffer_flag)      v=s.v;    else{      v=new unsigned char[buf_size];      memcpy(v,s.v,length);      if(length<buf_size&&s.v[length]==0)        v[length]=0;    }  }    virtual ~otl_long_string()  {   if(!extern_buffer_flag)delete[] v;  }  void set_len(const int alen=0){length=alen;}  int len(void)const {return length;}  void set_last_piece(const bool this_is_last_piece=false)  {    this_is_last_piece_=this_is_last_piece;  }  unsigned char& operator[](int ndx){return v[ndx];}  virtual void null_terminate_string(const int alen)  {    (*this)[alen]=0;  }};#if defined(OTL_UNICODE)class otl_long_unicode_string: public otl_long_string{public:  otl_long_unicode_string(const int buffer_size=32760,const int input_length=0)    : otl_long_string(0,0)  {    extern_buffer_flag=0;    length=input_length;    buf_size=buffer_size;    v=new unsigned char[(buffer_size+1)*sizeof(OTL_WCHAR)];    memset(v,0,buffer_size*sizeof(OTL_WCHAR));  }    otl_long_unicode_string  (const void* external_buffer,    const int buffer_size,   const int input_length=0)    : otl_long_string(external_buffer,buffer_size,input_length)  {    extern_buffer_flag=1;    length=input_length;    buf_size=buffer_size;    v=OTL_RCAST(unsigned char*, OTL_CCAST(void*, external_buffer));  }    virtual ~otl_long_unicode_string(){}    OTL_CHAR& operator[](int ndx)  {    return OTL_RCAST(OTL_CHAR*,v)[ndx];  }  virtual void null_terminate_string(const int alen)  {    (*this)[alen]=0;  }};#endifinline const char* otl_var_type_name(const int ftype){  const char* const_CHAR="CHAR";  const char* const_DOUBLE="DOUBLE";  const char* const_FLOAT="FLOAT";  const char* const_INT="INT";  const char* const_UNSIGNED_INT="UNSIGNED INT";  const char* const_SHORT_INT="SHORT INT";  const char* const_LONG_INT="LONG INT";  const char* const_TIMESTAMP="TIMESTAMP";  const char* const_DB2DATE="DB2DATE";  const char* const_DB2TIME="DB2TIME";  const char* const_TZ_TIMESTAMP="TIMESTAMP WITH TIME ZONE";  const char* const_LTZ_TIMESTAMP="TIMESTAMP WITH LOCAL TIME ZONE";  const char* const_BIGINT="BIGINT";  const char* const_VARCHAR_LONG="VARCHAR LONG";  const char* const_RAW_LONG="RAW LONG";  const char* const_CLOB="CLOB";  const char* const_BLOB="BLOB";  const char* const_RAW="RAW";  const char* const_UNKNOWN="UNKNOWN";  const char* const_LONG_STRING="otl_long_string()";  const char* const_LOB_STREAM="otl_lob_stream*&";  const char* const_USER_DEFINED="User-defined type (object type, VARRAY, Nested Table)";    switch(ftype){  case otl_var_char:    return const_CHAR;  case otl_var_double:    return const_DOUBLE;  case otl_var_float:    return const_FLOAT;  case otl_var_int:    return const_INT;  case otl_var_unsigned_int:    return const_UNSIGNED_INT;  case otl_var_short:    return const_SHORT_INT;  case otl_var_long_int:    return const_LONG_INT;  case otl_var_timestamp:    return const_TIMESTAMP;  case otl_var_db2date:    return const_DB2DATE;  case otl_var_db2time:    return const_DB2TIME;  case otl_var_tz_timestamp:    return const_TZ_TIMESTAMP;  case otl_var_ltz_timestamp:    return const_LTZ_TIMESTAMP;  case otl_var_bigint:    return const_BIGINT;  case otl_var_varchar_long:    return const_VARCHAR_LONG;  case otl_var_raw_long:    return const_RAW_LONG;  case otl_var_clob:    return const_CLOB;  case otl_var_blob:    return const_BLOB;  case otl_var_raw:    return const_RAW;  case otl_var_long_string:    return const_LONG_STRING;  case otl_var_lob_stream:    return const_LOB_STREAM;  case 108:    return const_USER_DEFINED; default:  return const_UNKNOWN; }}inline void otl_var_info_var(const char* name, const int ftype, const int type_code, char* var_info){char buf1[128]; char buf2[128]; strcpy(buf1,otl_var_type_name(ftype)); strcpy(buf2,otl_var_type_name(type_code)); strcpy(var_info,"Variable: "); strcat(var_info,name); strcat(var_info,"<"); strcat(var_info,buf1); strcat(var_info,">, datatype in operator <</>>: "); strcat(var_info,buf2);}inline void otl_var_info_var2(const char* name, const int ftype, char* var_info){char buf1[128]; strcpy(buf1,otl_var_type_name(ftype)); strcpy(var_info,"Variable: "); strcat(var_info,name); strcat(var_info,"<"); strcat(var_info,buf1); strcat(var_info,">");}inline void otl_var_info_var3(const char* name, const int ftype, const int type_code, char* var_info){char buf1[128]; char buf2[128]; strcpy(buf1,otl_var_type_name(ftype)); strcpy(buf2,otl_var_type_name(type_code)); strcpy(var_info,"Variable: "); strcat(var_info,name); strcat(var_info,"<"); strcat(var_info,buf1); strcat(var_info,">, datatype in otl_stream_read_iterator::get(): "); strcat(var_info,buf2);}inline void otl_var_info_var4(const char* name, const int ftype, const int type_code, char* var_info){char buf1[128]; char buf2[128]; strcpy(buf1,otl_var_type_name(ftype)); strcpy(buf2,otl_var_type_name(type_code)); strcpy(var_info,"Variable: "); strcat(var_info,name); strcat(var_info,"<"); strcat(var_info,buf1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -