📄 oracle_db8.h
字号:
/***************************
oracle_db8.h
***************************/
/*+ file: oracle_db8.h based on Oracle file tpccpl.h */
/*+=================================================================+
| Copyright (c) 1994 Oracle Corp, Redwood Shores, CA
|
| OPEN SYSTEMS PERFORMANCE GROUP
|
| All Rights Reserved
|
+==================================================================+
| DESCRIPTION
| header file for the TPC-C transactions.
+=================================================================-
*/
/*+*************************************************************************-*/
/*+-*/
/*+ COPYRIGHT (c) 1998 BY-*/
/*+ DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS.-*/
/*+ ALL RIGHTS RESERVED.-*/
/*+-*/
/*+ THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED -*/
/*+ ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE -*/
/*+ INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER -*/
/*+ COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY -*/
/*+ OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY -*/
/*+ TRANSFERRED.-*/
/*+-*/
/*+ THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE -*/
/*+ AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT -*/
/*+ CORPORATION.-*/
/*+-*/
/*+ DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS -*/
/*+ SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.-*/
/*+-*/
/*+-*/
/***************************************************************************-*/
/*
*
*
* Modification history:
*
*
* 08/01/2002 Andrew Bond, HP
* Conversion to run under Linux and Apache
*
*/
#ifndef ORACLE_DB_H
#define ORACLE_DB_H
#ifndef DISCARD
# define DISCARD (void)
#endif
#ifndef sword
# define sword int
#endif
#define VER7 2
#define NA -1 /* ANSI SQL NULL */
#define NLT 1 /* length for string null terminator */
#define DEADLOCK 60 /* ORA-00060: deadlock */
#define NO_DATA_FOUND 1403 /* ORA-01403: no data found */
#define NOT_SERIALIZABLE 8177 /* ORA-08177: transaction not serializable */
#define SNAPSHOT_TOO_OLD 1555 /* ORA-01555: snapshot too old */
#define RECOVERR -10
#define IRRECERR -20
#define NO_COMMIT -30
#define NOERR 111
#define DEADLOCKWAIT 10
#if (defined(__osf__) && defined(__alpha))
#define HDA_SIZ 512
#else
#define HDA_SIZ 256
#endif
#define MSG_SIZ 512
#define DATE_SIZ 20 /* DD-MM-YYYY.HH:MI:SS plus null terminator */
#define NITEMS 15
#define NDISTS 10
#define ROWIDLEN 20
#define OCIROWLEN 20
#define DEL_DATE_LEN 7
#define SQL_BUF_SIZE 8192
#ifndef NULLP
# define NULLP (void *)NULL
#endif /* NULLP */
#define ADR(object) ((ub1 *)&(object))
#define SIZ(object) ((sword)sizeof(object))
typedef char date[24+NLT];
typedef char varchar2;
struct _delctx {
sb2 cons_ind[NDISTS];
sb2 w_id_ind[NDISTS];
sb2 d_id_ind[NDISTS];
sb2 c_id_ind[NDISTS];
sb2 del_o_id_ind[NDISTS];
sb2 del_date_ind[NDISTS];
sb2 carrier_id_ind[NDISTS];
sb2 amt_ind[NDISTS];
sb2 no_rowid_ind[NDISTS];
sb2 o_rowid_ind[NDISTS];
#if defined(ISO) || defined(ISO5) || defined(ISO6) || defined(ISO8)
sb2 inum_ind;
#endif
OCIBind *olamt_bp;
ub2 cons_len[NDISTS];
ub2 w_id_len[NDISTS];
ub2 d_id_len[NDISTS];
ub4 c_id_len[NDISTS];
ub4 del_o_id_len[NDISTS];
ub2 del_date_len[NDISTS];
ub2 carrier_id_len[NDISTS];
ub2 amt_len[NDISTS];
ub2 no_rowid_len[NDISTS];
ub2 no_rowid_ptr_len[NDISTS];
ub2 o_rowid_len[NDISTS];
ub2 o_rowid_ptr_len[NDISTS];
#if defined(ISO) || defined(ISO5) || defined(ISO6) || defined(ISO8)
ub2 inum_len;
#endif
ub2 cons_rcode[NDISTS];
ub2 w_id_rcode[NDISTS];
ub2 d_id_rcode[NDISTS];
ub2 c_id_rcode[NDISTS];
ub2 del_o_id_rcode[NDISTS];
ub2 del_date_rcode[NDISTS];
ub2 carrier_id_rcode[NDISTS];
ub2 amt_rcode[NDISTS];
ub2 no_rowid_rcode[NDISTS];
ub2 o_rowid_rcode[NDISTS];
#if defined(ISO) || defined(ISO5) || defined(ISO6) || defined(ISO8)
ub2 inum_rcode;
#endif
int cons[NDISTS];
int w_id[NDISTS];
int d_id[NDISTS];
int c_id[NDISTS];
int del_o_id[NDISTS];
int carrier_id[NDISTS];
/* float amt[NDISTS]; Changed to int */
int amt[NDISTS];
ub4 del_o_id_rcnt;
OCIRowid *no_rowid_ptr[NDISTS];
OCIRowid *o_rowid_ptr[NDISTS];
OCIDate del_date[NDISTS];
#if defined(ISO) || defined(ISO5) || defined(ISO6) || defined(ISO8)
char inum[10];
#endif
OCIStmt *curd0;
OCIStmt *curd1;
OCIStmt *curd2;
OCIStmt *curd3;
OCIStmt *curd4;
OCIStmt *curd5;
OCIStmt *curd6;
OCIStmt *curdtest;
OCIBind *w_id_bp;
OCIBind *w_id_bp3;
OCIBind *w_id_bp4;
OCIBind *w_id_bp5;
OCIBind *w_id_bp6;
OCIBind *d_id_bp;
OCIBind *d_id_bp3;
OCIBind *d_id_bp4;
OCIBind *d_id_bp6;
OCIBind *o_id_bp;
OCIBind *cr_date_bp;
OCIBind *c_id_bp;
OCIBind *c_id_bp3;
OCIBind *no_rowid_bp;
OCIBind *carrier_id_bp;
OCIBind *o_rowid_bp;
OCIBind *del_o_id_bp;
OCIBind *del_o_id_bp3;
OCIBind *amt_bp;
OCIBind *bstr1_bp[10];
OCIBind *bstr2_bp[10];
OCIDefine *inum_dp;
OCIDefine *d_id_dp;
OCIDefine *del_o_id_dp;
OCIDefine *no_rowid_dp;
OCIDefine *c_id_dp;
OCIDefine *o_rowid_dp;
OCIDefine *cons_dp;
OCIDefine *amt_dp;
int norow;
};
typedef struct _delctx delctx;
struct _amtctx {
int ol_amt[NDISTS][NITEMS];
sb2 ol_amt_ind[NDISTS][NITEMS];
ub4 ol_amt_len[NDISTS][NITEMS];
ub2 ol_amt_rcode[NDISTS][NITEMS];
int ol_cnt[NDISTS];
};
typedef struct _amtctx amtctx;
struct _newctx {
sb2 nol_i_id_ind[NITEMS];
sb2 nol_supply_w_id_ind[NITEMS];
sb2 nol_quantity_ind[NITEMS];
sb2 nol_amount_ind[NITEMS];
sb2 i_name_ind[NITEMS];
sb2 s_quantity_ind[NITEMS];
sb2 i_price_ind[NITEMS];
sb2 ol_w_id_ind[NITEMS];
sb2 ol_d_id_ind[NITEMS];
sb2 ol_o_id_ind[NITEMS];
sb2 ol_number_ind[NITEMS];
sb2 cons_ind[NITEMS];
sb2 s_rowid_ind[NITEMS];
sb2 s_remote_ind[NITEMS];
sb2 s_quant_ind[NITEMS];
sb2 i_data_ind[NITEMS];
sb2 s_data_ind[NITEMS];
sb2 s_dist_info_ind[NITEMS];
sb2 ol_dist_info_ind[NITEMS];
sb2 null_date_ind[NITEMS];
sb2 s_bg_ind[NITEMS];
ub2 nol_i_id_len[NITEMS];
ub2 nol_supply_w_id_len[NITEMS];
ub2 nol_quantity_len[NITEMS];
ub2 nol_amount_len[NITEMS];
ub2 i_name_len[NITEMS];
ub2 s_quantity_len[NITEMS];
ub2 i_price_len[NITEMS];
ub2 ol_w_id_len[NITEMS];
ub2 ol_d_id_len[NITEMS];
ub2 ol_o_id_len[NITEMS];
ub2 ol_number_len[NITEMS];
ub2 cons_len[NITEMS];
ub2 s_rowid_len[NITEMS];
ub2 s_remote_len[NITEMS];
ub2 s_quant_len[NITEMS];
ub2 i_data_len[NITEMS];
ub2 s_data_len[NITEMS];
ub2 s_dist_info_len[NITEMS];
ub2 ol_dist_info_len[NITEMS];
ub2 null_date_len[NITEMS];
sb2 s_bg_len[NITEMS];
ub2 nol_i_id_rcode[NITEMS];
ub2 nol_supply_w_id_rcode[NITEMS];
ub2 nol_quantity_rcode[NITEMS];
ub2 nol_amount_rcode[NITEMS];
ub2 i_name_rcode[NITEMS];
ub2 s_quantity_rcode[NITEMS];
ub2 i_price_rcode[NITEMS];
ub2 ol_w_id_rcode[NITEMS];
ub2 ol_d_id_rcode[NITEMS];
ub2 ol_o_id_rcode[NITEMS];
ub2 ol_number_rcode[NITEMS];
ub2 cons_rcode[NITEMS];
ub2 s_rowid_rcode[NITEMS];
ub2 s_remote_rcode[NITEMS];
ub2 s_quant_rcode[NITEMS];
ub2 i_data_rcode[NITEMS];
ub2 s_data_rcode[NITEMS];
ub2 s_dist_info_rcode[NITEMS];
ub2 ol_dist_info_rcode[NITEMS];
ub2 null_date_rcode[NITEMS];
sb2 s_bg_rcode[NITEMS];
int ol_w_id[NITEMS];
int ol_d_id[NITEMS];
int ol_o_id[NITEMS];
int ol_number[NITEMS];
int cons[NITEMS];
OCIRowid *s_rowid_ptr[NITEMS];
int s_remote[NITEMS];
char i_data[NITEMS][51];
char s_data[NITEMS][51];
char s_dist_info[NITEMS][25];
/* changed to OCIDate unsigned char null_date[NITEMS][7]; */
OCIDate null_date[NITEMS]; /* base date for null date entry */
/* not needed for Oracle 8.1.5 OCIStmt *curn; */
OCIStmt *curn1;
OCIStmt *curn2;
OCIStmt *curn3[10];
OCIStmt *curn4;
OCIBind *i_price_bp;
OCIBind *i_name_bp;
OCIBind *s_bg_bp;
OCIBind *s_data_bp;
OCIBind *i_data_bp;
ub4 nol_i_count;
ub4 nol_s_count;
ub4 nol_q_count;
ub4 nol_item_count;
ub4 nol_name_count;
ub4 nol_qty_count;
ub4 nol_bg_count;
ub4 nol_am_count;
ub4 s_remote_count;
ub4 s_data_count;
ub4 i_data_count;
OCIBind *ol_i_id_bp4;
OCIBind *ol_supply_w_id_bp4;
OCIBind *ol_quantity_bp4;
OCIBind *w_id_bp;
OCIBind *d_id_bp;
OCIBind *c_id_bp;
OCIBind *o_all_local_bp;
OCIBind *o_all_cnt_bp;
OCIBind *w_tax_bp;
OCIBind *d_tax_bp;
OCIBind *o_id_bp;
OCIBind *c_discount_bp;
OCIBind *c_credit_bp;
OCIBind *c_last_bp;
OCIBind *retries_bp;
OCIBind *cr_date_bp;
OCIBind *ol_i_id_bp;
OCIBind *ol_supply_w_id_bp;
OCIBind *s_quantity_bp;
OCIBind *s_rowid_bp;
OCIBind *ol_quantity_bp;
OCIBind *s_remote_bp;
OCIBind *id_bp[10][15];
OCIBind *sd_bp[10][15];
OCIDefine *Dcons[10];
OCIDefine *Ds_rowid[10];
OCIDefine *Di_price[10];
OCIDefine *Di_data[10];
OCIDefine *Ds_dist_info[10];
OCIDefine *Ds_data[10];
OCIDefine *Ds_quantity[10];
OCIDefine *Di_name[10];
OCIBind *ol_o_id_bp;
OCIBind *ol_d_id_bp;
OCIBind *ol_w_id_bp;
OCIBind *ol_number_bp;
OCIBind *ol_amount_bp;
OCIBind *ol_dist_info_bp;
OCIBind *null_date_bp;
sb2 w_id_ind;
ub2 w_id_len;
ub2 w_id_rc;
sb2 d_id_ind;
ub2 d_id_len;
ub2 d_id_rc;
sb2 c_id_ind;
ub2 c_id_len;
ub2 c_id_rc;
sb2 o_all_local_ind;
ub2 o_all_local_len;
ub2 o_all_local_rc;
sb2 o_ol_cnt_ind;
ub2 o_ol_cnt_len;
ub2 o_ol_cnt_rc;
sb2 w_tax_ind;
ub2 w_tax_len;
ub2 w_tax_rc;
sb2 d_tax_ind;
ub2 d_tax_len;
ub2 d_tax_rc;
sb2 o_id_ind;
ub2 o_id_len;
ub2 o_id_rc;
sb2 c_discount_ind;
ub2 c_discount_len;
ub2 c_discount_rc;
sb2 c_credit_ind;
ub2 c_credit_len;
ub2 c_credit_rc;
sb2 c_last_ind;
ub2 c_last_len;
ub2 c_last_rc;
sb2 retries_ind;
ub2 retries_len;
ub2 retries_rc;
sb2 cr_date_ind;
ub2 cr_date_len;
ub2 cr_date_rc;
int cs;
int norow;
/* context holders */
int i_name_ctx;
int i_data_ctx;
int i_price_ctx;
int s_data_ctx;
int s_dist_info_ctx;
int s_quantity_ctx;
};
typedef struct _newctx newctx;
struct _ordctx {
sb2 c_rowid_ind[100];
sb2 ol_supply_w_id_ind[NITEMS];
sb2 ol_i_id_ind[NITEMS];
sb2 ol_quantity_ind[NITEMS];
sb2 ol_amount_ind[NITEMS];
sb2 ol_delivery_d_ind[NITEMS];
sb2 ol_w_id_ind;
sb2 ol_d_id_ind;
sb2 ol_o_id_ind;
sb2 c_id_ind;
sb2 c_first_ind;
sb2 c_middle_ind;
sb2 c_balance_ind;
sb2 c_last_ind;
sb2 o_id_ind;
sb2 o_entry_d_ind;
sb2 o_carrier_id_ind;
sb2 o_ol_cnt_ind;
ub4 c_rowid_len[100];
ub2 ol_supply_w_id_len[NITEMS];
ub2 ol_i_id_len[NITEMS];
ub2 ol_quantity_len[NITEMS];
ub2 ol_amount_len[NITEMS];
ub2 ol_delivery_d_len[NITEMS];
ub2 ol_w_id_len;
ub2 ol_d_id_len;
ub2 ol_o_id_len;
ub2 c_rowid_rcode[100];
ub2 ol_supply_w_id_rcode[NITEMS];
ub2 ol_i_id_rcode[NITEMS];
ub2 ol_quantity_rcode[NITEMS];
ub2 ol_amount_rcode[NITEMS];
ub2 ol_delivery_d_rcode[NITEMS];
ub2 ol_w_id_rcode;
ub2 ol_d_id_rcode;
ub2 ol_o_id_rcode;
ub4 ol_supply_w_id_csize;
ub4 ol_i_id_csize;
ub4 ol_quantity_csize;
ub4 ol_amount_csize;
ub4 ol_delivery_d_csize;
ub4 ol_w_id_csize;
ub4 ol_d_id_csize;
ub4 ol_o_id_csize;
OCIStmt *curo0;
OCIStmt *curo1;
OCIStmt *curo2;
OCIStmt *curo3;
OCIStmt *curo4;
OCIBind *w_id_bp0;
OCIBind *w_id_bp2;
OCIBind *w_id_bp3;
OCIBind *w_id_bp4;
OCIBind *d_id_bp0;
OCIBind *d_id_bp2;
OCIBind *d_id_bp3;
OCIBind *d_id_bp4;
OCIBind *c_id_bp;
OCIBind *byln_bp;
OCIBind *c_last_bp;
OCIBind *c_last_bp4;
OCIBind *c_first_bp;
OCIBind *c_middle_bp;
OCIBind *c_balance_bp;
OCIBind *o_id_bp;
OCIBind *o_entry_d_bp;
OCIBind *o_cr_id_bp;
OCIBind *o_ol_cnt_bp;
OCIBind *ol_s_w_id_bp;
OCIBind *ol_i_id_bp;
OCIBind *ol_quantity_bp;
OCIBind *ol_amount_bp;
OCIBind *ol_d_d_bp;
OCIBind *c_rowid_bp;
OCIDefine *c_rowid_dp;
OCIDefine *c_last_dp;
OCIDefine *c_last_dp1;
OCIDefine *c_id_dp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -