»ùÓÚ OCI ʵÏÖµÄ oracle ×î¸ßЧdump³ÌÐò
»ùÓÚOCI ʵÏÖµÄ ×î¸ßЧdump³ÌÐò£¬ ±ÈOTL ÒÔ¼°ÆäËûµÄ½Ó¿Ú¶¼¿ìºÜ¶à
ÄÜÖ´ÐÐÈκÎsql , ×Ô¶¯Ê¶±ð×Ö¶ÎÃûºÍ×Ö¶ÎÀàÐÍ£¬½øÐÐÊä³öÊä³ö
/*
* oracle_dump.cpp
*
* Created on: 2010-2-1
* Author: clm971910@gmail.com
*
* ѹËõ
* 4216351 dump done
* ÍêÕû 106 Ãë
* д·Ö¸ô·û 8Ãë
* ѹËõд´ÅÅÌ 34Ãë
* ¶ÁÊý¾Ý 9Ãë
* Êý¾Ý¿â²éѯ 54Ãë
*/
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <getopt.h>
#include <oci.h>
#include <oratypes.h>
#include <ocidfn.h>
#ifdef __STDC__
#include <ociapr.h>
#else
#include <ocikpr.h>
#endif
#include <ocidem.h>
#include "tbZip.h"
using namespace std;
/* =================== macro =====================*/
#define MAX_SELECT_COL_SIZE 1000 /* sqlÖÐ×î´óµÄÁÐÊý */
#define MAX_COLNAME_LEN 54 /* ÁÐÃû×î´ó³¤¶È */
#define MAX_SQL_LINE_SIZE 1024 /* sqlµÄ×î´ó³¤¶È */
#define MBYTE 1024 * 1024 /* 1M µÄ×Ö½ÚÊý */
#define DEFAULT_FETCH_SIZE 1000 /* ÿ´ÎÈ¡µÄ¼Ç¼Êý */
#define MAX_COLDATA_LEN 16 * 1024 /* ÁÐÊý¾ÝµÄ×î´ó³¤¶È */
/*=====================define all struct=======================*/
/* OCI »·¾³ */
typedef struct OCI_ENV
{
OCIEnv *oci_env; /* »·¾³¾ä±ú */
OCISvcCtx *oci_svc; /* ·þÎñÆ÷»·¾³¾ä±ú */
OCIServer *oci_srv; /* ·þÎñÆ÷¾ä±ú */
OCIError *oci_err; /* ´íÎó¾ä±ú */
OCIStmt *oci_stmt; /* Óï¾ä¾ä±ú */
OCISession *oci_session; /* »á»°¾ä±ú */
} OCI_ENV;
/* ÁÐÔªÐÅÏ¢ */
typedef struct COL_META
{
ub2 colType; /* ×Ö¶ÎÀ
Ïà¹ØÎĵµ£º
@@servername:·µ»ØÔËÐÐSQL ServerÊý¾Ý¿â±¾µØ·þÎñÆ÷µÄÃû³Æ¡£
@@remserver:·µ»ØµÇ¼¼Ç¼ÖмÇÔØµÄÔ¶³ÌSQL Server·þÎñÆ÷µÄÃû³Æ¡£
@@connections:·µ»Ø×ÔÉÏ´ÎÆô¶¯SQL ServerÒÔÀ´Á¬½Ó»òÊÔͼÁ¬½ÓµÄ´ÎÊý£¬ÓÃÆä¿ÉÈùÜÀíÈËÔ±·½±ãµØÁ˽â½ñÌìËùÓÐÊÔͼÁ¬½Ó·þÎñÆ÷µÄ´ÎÊý¡£
@@cursor_rows:·µ»Ø×îºóÁ¬½ÓÉϲ¢´ò¿ªµÄÓαêÖе±Ç°´æÔڵĺϸñ ......
ʹÓÃÒ»ÏÂSQL
select *
from T_0303003
order by stock_holder
½øÐÐѡȡÊý¾Ýʱ£¨stock_holderΪ´æ·ÅÖÐÎĵÄ×ֶΣ©£¬½á¹û·¢ÏÖÁ½¿â·µ»ØµÄ¼Ç¼˳Ðò²»Ò»Ö¡£×ÁÄ¥Ö®ºóÓ¦¸ÃΪ×Ö·û¼¯ÎÊÌ⣬һ¸ö¿â×Ö·û¼¯ÎªÏµÍ³Ä¬ÈÏ×Ö·û¼¯£¬ÁíÒ»¸ö¿âΪUTF-8×Ö·û¼¯¡£²éÕÒ×ÊÁϺó·¢ÏÖ£¬¶ÔÓÚÖÐÎÄ×ֶεÄÅÅÐò£¬Ó¦¸ÃÊ¹Ó ......
t±íÖн«½üÓÐ1100ÍòÊý¾Ý£¬ºÜ¶àʱºò£¬ÎÒÃÇÒª½øÐÐ×Ö·û´®Æ¥Å䣬ÔÚSQLÓï¾äÖУ¬ÎÒÃÇͨ³£Ê¹ÓÃlikeÀ´´ïµ½ÎÒÃÇËÑË÷µÄÄ¿±ê¡£µ«¾¹ýʵ¼Ê²âÊÔ·¢
ÏÖ£¬likeµÄЧÂÊÓëinstrº¯Êý²î±ðÏ൱´ó¡£ÏÂÃæÊÇһЩ²âÊÔ½á¹û£º
SQL> set timing on
SQL> select count(*) from t where instr(title,’ÊÖ²á’)>0;
COUNT(*)
&mdash ......
ǰÁ½Ì죬ÔÚ¿Í»§µÄÐéÄâ»úÉϰ²×°oracleÈí¼þÓÃÓÚ²¿Êð×Ô¼ºµÄÓ¦ÓᣲÅ×°ºÃ²»¾Ã£¬ÓÉÓÚÐèÒªÅäÖÃÍøÂ簲ȫ£¬°ÑÕû¸öÐéÄâ»ú¶¼²ùµô£¬¿Ë¡Á˸öÅäÖúÃÍøÂ簲ȫµÄÐéÄâ»ú¸øÎÒÃÇʹÓã¬Ö»µÃ֨װoracle 10g¡£
µ±µÚ¶þ´ÎÔÚÐéÄâ»úÉϰ²×°oracleʱ£¬Êý¾Ý¿âÃûºÍϵͳÕ˺ŵÄÃÜÂë¶¼×öÁ˸͝£¬½á¹ûÖ±½Óµ¼ÖÂÔÚ´´½¨oracleʵÀýʱµ¯³öora-12154´íÎó¡£Ñ¡Ôñ¡¾º ......
ORACLEÖеÄÊý¾Ý×ÖµäÊÇʲô£¿ÓÐÊ²Ã´ÌØµãºÍ¹æÂÉ£¿
Êý¾Ý×Öµä¼Ç¼ÁËÊý¾Ý¿âµÄϵͳÐÅÏ¢£¬ËüÊÇÖ»¶Á±íºÍϵͳÊÓͼµÄ¼¯ºÏ¡£
Êý¾Ý×ÖµäµÄËùÓÐÕßÊÇSYSÓû§£¬Êý¾Ý×ֵ䶼±»´æ·ÅÔÚSYSTEM±í¿Õ¼ä£¬SYSÓû§µÄ·½°¸Ï¡£
Êý¾Ý×ÖµäÖ»ÔÊÐíSELECT²Ù×÷£¬Æäά»¤ºÍÐÞ¸ÄÈÎÎñÓÉÊý¾Ý¿â×Ô¶¯Íê³É¡£
µ±Óû§Ö´ÐÐCREATE¡¢ALTER¡¢DROP ......