系统环境:
目前正式系统分为pdmdata和pdmserv【Pdmdata】安装Oracle dbms---------【Pdmserv】安装应用软件tcua,位置:/app/teamcenter/tc2007 Pdmserv上Oracle 客户端安装位置:/app/oracle/OraHome_1/ ORACLE_HOME=/app/oracle/OraHome_1 ---------客户化功能实现用c代码直接操作Oracle时出现问题。当应用系统与oracle安装在同一台服务器上,客户化代码是可以正常访问db的,但正式系统中,,应用软件与DB服务器分别安装在两台服务器,c代码就无法正常工作了。请问该如何设置正式环境的应用服务器pdmserv或其它内容?或者是我使用的访问数据库的c代码存在问题?请给予指点。
附上c代码:
#include <stdlib.h>#ifndef SQLCA
#define SQLCA 1struct sqlca
{
/* ub1 */ char sqlcaid[8];
/* b4 */ int sqlabc;
/* b4 */ int sqlcode;
struct
{
/* ub2 */ unsigned short sqlerrml;
/* ub1 */ char sqlerrmc[70];
} sqlerrm;
/* ub1 */ char sqlerrp[8];
/* b4 */ int sqlerrd[6];
/* ub1 */ char sqlwarn[8];
/* ub1 */ char sqlext[8];
};#ifndef SQLCA_NONE
#ifdef SQLCA_STORAGE_CLASS
SQLCA_STORAGE_CLASS struct sqlca sqlca
#else
struct sqlca sqlca
#endif#ifdef SQLCA_INIT
= {
{'S', 'Q', 'L', 'C', 'A', ' ', ' ', ' '},
sizeof(struct sqlca),
0,
{ 0, {0}},
{'N', 'O', 'T', ' ', 'S', 'E', 'T', ' '},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
}
#endif
;
#endif#endif/* end SQLCA *//* File name & Package Name */
struct sqlcxp
{
unsigned short fillen;
char filnam[76];
};
static const struct sqlcxp sqlfpn =
{
75,
"E:\\code\\cust_oracle_handler.c"
};static unsigned int sqlctx = 602293339;/* Object support */
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;static struct sqladts sqladt = {
1,1,0,
};/* Binding to PL/SQL Records */
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,0,
};static struct sqlexd {
unsigned int sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
void **sqphsv;
unsigned int *sqphsl;
int *sqphss;
void **sqpind;
int *sqpins;
unsigned int *sqparm;
unsigned int **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
void *sqhstv[4];
unsigned int sqhstl[4];
int sqhsts[4];
void *sqindv[4];
int sqinds[4];
unsigned int sqharm[4];
unsigned int *sqharc[4];
unsigned short sqadto[4];
unsigned short sqtdso[4];
} sqlstm = {12, 4};/* cud (compilation unit data) array */
static const short sqlcud0[] =
{12,4130,852,0,0,
5,0,0,1,0,0,27,53,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,
36,0,0,2,0,0,27,55,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,10,0,0,
67,0,0,3,0,0,30,68,0,0,0,0,0,1,0,
82,0,0,4,0,0,29,83,0,0,0,0,0,1,0,
97,0,0,5,66,0,4,87,0,0,2,1,0,1,0,1,97,0,0,2,3,0,0,
120,0,0,6,0,0,29,113,0,0,0,0,0,1,0,
135,0,0,7,0,0,24,117,0,0,1,1,0,1,0,1,97,0,0,
};/* SQLLIB Prototypes */ static int ConnectedDB(); static int CheckSqlResult( char *sMsg ); static int DisConnectDB();
static int ConnectedDB( )
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char sServerName[64] = "", sUserName[64] = "", sPassWord[64] = "";
struct sqlexd sqlstm;
// char *strenv; /*set ORACLE_HOME env*/ putenv("ORACLE_HOME=/app/oracle/product/10.2.0/db_1");
/* EXEC SQL END DECLARE SECTION; */
strcpy(sUserName,"infodba");
strcpy(sPassWord,"infodba");
strcpy(sServerName,"pdmdata"); sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )10;
sqlstm.offset = (unsigned int )5;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)sUserName;
sqlstm.sqhstl[0] = (unsigned int )130;
sqlstm.sqhsts[0] = ( int )130;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)sPassWord;
sqlstm.sqhstl[1] = (unsigned int )130;
sqlstm.sqhsts[1] = ( int )130;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)sServerName;
sqlstm.sqhstl[2] = (unsigned int )130;
sqlstm.sqhsts[2] = ( int )130;
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlstm.sqlcmax = (unsigned int )100;
sqlstm.sqlcmin = (unsigned int )2;
sqlstm.sqlcincr = (unsigned int )1;
sqlstm.sqlctimeout = (unsigned int )0;
sqlstm.sqlcnowait = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (CheckSqlResult("Connect Database")!=0)
return sqlca.sqlcode; return 0;
} static int CheckSqlResult( char *sMsg)
{
int i;
char sTemp[4096]; if (sqlca.sqlcode == 0)
return 0;
else if (sqlca.sqlcode > 0)
return 1;
else
{
printf("err:code:%ld,pos:%s-%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc,sMsg);
}
return sqlca.sqlcode;
} extern int access_oracle_DB( char * sMsg )
{
/* EXEC SQL BEGIN DECLARE SECTION ; */
int iFlowID = 0 ;
char dynstmt[8000];
int iRet = 0;
/* EXEC SQL END DECLARE SECTION ; */
iRet = ConnectedDB() ;
if ( iRet == 0 )
{ /* EXEC SQL COMMIT WORK ; */ {
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )120;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
strcpy(dynstmt,sMsg); /* EXEC SQL EXECUTE IMMEDIATE :dynstmt; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )135;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)dynstmt;
sqlstm.sqhstl[0] = (unsigned int )8000;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
} iRet = CheckSqlResult( "PutData ");
if( iRet != 0 )
return sqlca.sqlcode; DisConnectDB();
}
return iRet ;} static int DisConnectDB()
{
/* EXEC SQL COMMIT WORK RELEASE ; */ {
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )67;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return 0;
}
目前正式系统分为pdmdata和pdmserv【Pdmdata】安装Oracle dbms---------【Pdmserv】安装应用软件tcua,位置:/app/teamcenter/tc2007 Pdmserv上Oracle 客户端安装位置:/app/oracle/OraHome_1/ ORACLE_HOME=/app/oracle/OraHome_1 ---------客户化功能实现用c代码直接操作Oracle时出现问题。当应用系统与oracle安装在同一台服务器上,客户化代码是可以正常访问db的,但正式系统中,,应用软件与DB服务器分别安装在两台服务器,c代码就无法正常工作了。请问该如何设置正式环境的应用服务器pdmserv或其它内容?或者是我使用的访问数据库的c代码存在问题?请给予指点。
附上c代码:
#include <stdlib.h>#ifndef SQLCA
#define SQLCA 1struct sqlca
{
/* ub1 */ char sqlcaid[8];
/* b4 */ int sqlabc;
/* b4 */ int sqlcode;
struct
{
/* ub2 */ unsigned short sqlerrml;
/* ub1 */ char sqlerrmc[70];
} sqlerrm;
/* ub1 */ char sqlerrp[8];
/* b4 */ int sqlerrd[6];
/* ub1 */ char sqlwarn[8];
/* ub1 */ char sqlext[8];
};#ifndef SQLCA_NONE
#ifdef SQLCA_STORAGE_CLASS
SQLCA_STORAGE_CLASS struct sqlca sqlca
#else
struct sqlca sqlca
#endif#ifdef SQLCA_INIT
= {
{'S', 'Q', 'L', 'C', 'A', ' ', ' ', ' '},
sizeof(struct sqlca),
0,
{ 0, {0}},
{'N', 'O', 'T', ' ', 'S', 'E', 'T', ' '},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}
}
#endif
;
#endif#endif/* end SQLCA *//* File name & Package Name */
struct sqlcxp
{
unsigned short fillen;
char filnam[76];
};
static const struct sqlcxp sqlfpn =
{
75,
"E:\\code\\cust_oracle_handler.c"
};static unsigned int sqlctx = 602293339;/* Object support */
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;static struct sqladts sqladt = {
1,1,0,
};/* Binding to PL/SQL Records */
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,0,
};static struct sqlexd {
unsigned int sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
void **sqphsv;
unsigned int *sqphsl;
int *sqphss;
void **sqpind;
int *sqpins;
unsigned int *sqparm;
unsigned int **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
void *sqhstv[4];
unsigned int sqhstl[4];
int sqhsts[4];
void *sqindv[4];
int sqinds[4];
unsigned int sqharm[4];
unsigned int *sqharc[4];
unsigned short sqadto[4];
unsigned short sqtdso[4];
} sqlstm = {12, 4};/* cud (compilation unit data) array */
static const short sqlcud0[] =
{12,4130,852,0,0,
5,0,0,1,0,0,27,53,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,10,0,0,1,10,0,0,
36,0,0,2,0,0,27,55,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,10,0,0,
67,0,0,3,0,0,30,68,0,0,0,0,0,1,0,
82,0,0,4,0,0,29,83,0,0,0,0,0,1,0,
97,0,0,5,66,0,4,87,0,0,2,1,0,1,0,1,97,0,0,2,3,0,0,
120,0,0,6,0,0,29,113,0,0,0,0,0,1,0,
135,0,0,7,0,0,24,117,0,0,1,1,0,1,0,1,97,0,0,
};/* SQLLIB Prototypes */ static int ConnectedDB(); static int CheckSqlResult( char *sMsg ); static int DisConnectDB();
static int ConnectedDB( )
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char sServerName[64] = "", sUserName[64] = "", sPassWord[64] = "";
struct sqlexd sqlstm;
// char *strenv; /*set ORACLE_HOME env*/ putenv("ORACLE_HOME=/app/oracle/product/10.2.0/db_1");
/* EXEC SQL END DECLARE SECTION; */
strcpy(sUserName,"infodba");
strcpy(sPassWord,"infodba");
strcpy(sServerName,"pdmdata"); sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )10;
sqlstm.offset = (unsigned int )5;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)sUserName;
sqlstm.sqhstl[0] = (unsigned int )130;
sqlstm.sqhsts[0] = ( int )130;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)sPassWord;
sqlstm.sqhstl[1] = (unsigned int )130;
sqlstm.sqhsts[1] = ( int )130;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)sServerName;
sqlstm.sqhstl[2] = (unsigned int )130;
sqlstm.sqhsts[2] = ( int )130;
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlstm.sqlcmax = (unsigned int )100;
sqlstm.sqlcmin = (unsigned int )2;
sqlstm.sqlcincr = (unsigned int )1;
sqlstm.sqlctimeout = (unsigned int )0;
sqlstm.sqlcnowait = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn); if (CheckSqlResult("Connect Database")!=0)
return sqlca.sqlcode; return 0;
} static int CheckSqlResult( char *sMsg)
{
int i;
char sTemp[4096]; if (sqlca.sqlcode == 0)
return 0;
else if (sqlca.sqlcode > 0)
return 1;
else
{
printf("err:code:%ld,pos:%s-%s\n",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc,sMsg);
}
return sqlca.sqlcode;
} extern int access_oracle_DB( char * sMsg )
{
/* EXEC SQL BEGIN DECLARE SECTION ; */
int iFlowID = 0 ;
char dynstmt[8000];
int iRet = 0;
/* EXEC SQL END DECLARE SECTION ; */
iRet = ConnectedDB() ;
if ( iRet == 0 )
{ /* EXEC SQL COMMIT WORK ; */ {
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )120;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
strcpy(dynstmt,sMsg); /* EXEC SQL EXECUTE IMMEDIATE :dynstmt; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.stmt = "";
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )135;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)dynstmt;
sqlstm.sqhstl[0] = (unsigned int )8000;
sqlstm.sqhsts[0] = ( int )0;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
} iRet = CheckSqlResult( "PutData ");
if( iRet != 0 )
return sqlca.sqlcode; DisConnectDB();
}
return iRet ;} static int DisConnectDB()
{
/* EXEC SQL COMMIT WORK RELEASE ; */ {
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )67;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
return 0;
}
解决方案 »
- sql 语句报错
- SQL达人进
- 有学生表和成绩表,查询男女生平均成绩各是多少 。
- 关于数据库的一个题
- 本地不装客户端怎么连接到远程的oracle数据库服务器上?急等
- 做过asp.net+oracle请进,严重的iis问题,恳请知情者帮忙
- 各位帮忙啊!!!
- linux、oracle双机数据库安装问题!
- (抢分啦)怎样启动Oracle Database Configuation Asssistant?
- 请教:SQL*Plus如何配置,使“左光标移动键”起作用?还有,Dos中的“下光标移动键”有自动复制上一行的功能,可不可以在SQL*Plus中配置
- 关于视图的更新触发某事件,谢谢大家!!!
- pl/sql 小问题
strcpy(sPassWord,"infodba");
strcpy(sServerName,"pdmdata");
放在不同的机器上,需要重新配置TNS.
另外,你需要安装Oracle 客户端
本人不太会,初学,望指教。
谢谢