当前位置:首页 » 操作系统 » c连接远程oracle数据库

c连接远程oracle数据库

发布时间: 2022-02-27 19:06:50

Ⅰ c程序通过什么连接oracle

一般c语言连接oracle数据库通过使用oracle提供的OCI接口和PROC编程接口两种方式。
OCI方式纯粹是一些函数接口。
PROC是oracle提供的一种C与ORACLE sql的混合编程。程序(以.pc为后缀)编好之后,使用oracle提供的proc预编译程序,将pc文件编译成c文件(这一过程,相当于将SQL转换为OCI的接口),然后再使用c语言编译器生成可以执行文件。
OCI方式不容易入门,它拥有大量的接口函数,要很快熟悉它,非常难。但OCI方式的编程效率很高。
porc方式简单易用。可用于对性能要求不太高的项目。

Ⅱ Oracle远程如何连接

  1. 首先保证你的 本地Net服务名配置正确

  2. 要保证你的机器到服务器的网络畅通


Oracle Sql Developer,这个是Oracle自己的开发工具,免费的,基于java

还有
pl/sql developer,这个用的比较多,是32位的,可以在64位机器上使用。
toad for oracle,这个12.1就有64位的了,32位的也可以配置在64位机器上使用。

当然还有很多。

使用InstantClient,PL/SQL Developer连接Oracle(可以在32位机器上使用、也可以在64位机器上使用):
•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:instantclient-basic-nt-11.2.0.2.0;
•2. 将系统的tnsnames.ora拷贝到该目录下;
•3. 在PLSQL Developer中设置Oracle_Home和OCI Library:
ToolsPreferencesOracleConnection:
Oracle_Home: C:instantclient-basic-nt-11.2.0.2.0
OCI Library: C:instantclient-basic-nt-11.2.0.2.0oci.dll
•4. 在PLSQL Developer目录下新建如下bat文件,替换其快捷方式,启动PLSQL Developer:
@echo off
set path=C:instantclient-basic-nt-11.2.0.2.0
set ORACLE_HOME=C:instantclient-basic-nt-11.2.0.2.0
set TNS_ADMIN=C:instantclient-basic-nt-11.2.0.2.0
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe

Ⅲ 如何远程连接oracle数据库

配置好相关的文件就可以,一般是tnsname.ora文件。
一般oracle10g的文件所在目录为:C:\oracle\proct\10.2.0\db_1\network\ADMIN
其他版本的可在oracle目录下搜索tnsname.ora文件名进行修改。

ora =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

其中ora为本地实例名,xxx.xxx.xxx.xxx为远程IP地址,1521为端口号,orcl为远程数据库实例名,按照对方提供的内容进行修改即可。

linux下c++远程连接oracle数据库

你说的复合结构应该是结构体吧。若是举个例子给你看看

/*
* sample2.pc
*
* This program connects to ORACLE, declares and opens a cursor,
* fetches the names, salaries, and commissions of all
* salespeople, displays the results, then closes the cursor.
*/
#include <stdio.h>
#include <sqlca.h>
#define UNAME_LEN 20
#define PWD_LEN 40
/*
* Use the precompiler typedef’ing capability to create
* null-terminated strings for the authentication host
* variables. (This isn’t really necessary--plain char *’s
* does work as well. This is just for illustration.)
*/
typedef char asciiz[PWD_LEN];
EXEC SQL TYPE asciiz IS STRING(PWD_LEN) REFERENCE;
asciiz username;
asciiz password;
struct emp_info
{
asciiz emp_name;
float salary;
float commission;
};
/* Declare function to handle unrecoverable errors. */
void sql_error();
main()
{
struct emp_info *emp_rec_ptr;
/* Allocate memory for emp_info struct. */
if ((emp_rec_ptr =
(struct emp_info *) malloc(sizeof(struct emp_info))) == 0)
{
fprintf(stderr, "Memory allocation error. ");
exit(1);
}
/* Connect to ORACLE. */
strcpy(username, "SCOTT");
strcpy(password, "TIGER");
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--");
EXEC SQL CONNECT :username IDENTIFIED BY :password;
printf(" Connected to ORACLE as user: %s ", username);
/* Declare the cursor. All static SQL explicit cursors
* contain SELECT commands. ’salespeople’ is a SQL identifier,
* not a (C) host variable.
*/
EXEC SQL DECLARE salespeople CURSOR FOR
SELECT ENAME, SAL, COMM FROM EMP WHERE JOB LIKE ’SALES%’;
/* Open the cursor. */
EXEC SQL OPEN salespeople;
/* Get ready to print results. */
printf(" The company’s salespeople are-- ");
printf("Salesperson Salary Commission ");
printf("----------- ------ ---------- ");
/* Loop, fetching all salesperson’s statistics.
* Cause the program to break the loop when no more
* data can be retrieved on the cursor.
*/
EXEC SQL WHENEVER NOT FOUND DO break;
for (;;)
{
EXEC SQL FETCH salespeople INTO :emp_rec_ptr;
printf("%-11s%9.2f%13.2f ", emp_rec_ptr->emp_name,emp_rec_ptr->salary, emp_rec_ptr->commission);
}
/* Close the cursor. */
EXEC SQL CLOSE salespeople;
printf(" Arrivederci. ");
EXEC SQL COMMIT WORK RELEASE;
exit(0);
}
void sql_error(msg) char *msg;
{
char err_msg[512];
int buf_len, msg_len;
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf(" %s ", msg);
/* Call sqlglm() to get the complete text of the
* error message.
*/
buf_len = sizeof (err_msg);
sqlglm(err_msg, &buf_len, &msg_len);
printf("%.*s ", msg_len, err_msg);
EXEC SQL ROLLBACK RELEASE;
exit(1);
}

Ⅳ vs2010中进行C/C++编程,如何连接和使用oracle数据库

在Windows的控制面板中,查找ODBC数据源,配置一个能够连接Oracle的数据源,并测试能够成功连接。然后在VS中连接这个数据源即可。

Ⅵ windows系统下,c如何连接oracle数据库

首先,这类问题应该问到编程区去,这是软件喔

########insert.pc############
#include <stdio.h>
EXEC SQL INCLUDE SQLCA;

void insert (char password_[6],char id_[20],int balance_)
{

EXEC SQL BEGIN DECLARE SECTION;
VARCHAR user[20],pass[20],tnsname[20];
char password[6];
char id[20];
int balance;
EXEC SQL END DECLARE SECTION;

strcpy(user.arr,"scott");
user.len=(unsigned short)strlen((char *)user.arr);
strcpy(pass.arr,"tiger");
pass.len=(unsigned short)strlen((char *)pass.arr);
strcpy(tnsname.arr,"demo1");
tnsname.len=(unsigned short)strlen((char *)tnsname.arr);

strcpy(id,id_);
strcpy(password,password_);
balance = balance_;

EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname;

EXEC SQL insert into bank_bingo values (:id , :password , :balance);

EXEC SQL COMMIT WORK;
EXEC SQL commit work release;

}

#################main.c####################

#include <stdio.h>
extern void insert (char password_[6],char id_[20],int balance_);
int main(int argc , char ** argv){
char id [20] = "10001";
char password[6] = "123";
int balance = 10000;
insert(password , id , balance);
return 0;
}

############################################

Ⅶ 怎么远程连接oracle数据库

第一种情况:

若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。

第二种情况:

本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例:

1、在安装oracle服务器的机器上搜索下列文件:

oci.dll
ocijdbc10.dll
ociw32.dll
orannzsbb10.dll
oraocci10.dll
oraociei10.dll
sqlnet.ora
tnsnames.ora
classes12.jar
ojdbc14.jar
把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。

2、配置tnsnames.ora,修改其中的数据库连接串。

oracledata = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = oracledata) )

其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。

3、添加第一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够找到上面说的tnsnames.ora。这步是最重要的。

添加第二个环境变量(可有可无):“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)(本步骤暂时要做对,如果编码不对,会产生乱码)。

4、下载并安装PL SQL Developer配置应用:

打开PL SQL Developer,登入界面点取消,进入后选择菜单栏 tools->preferences->connection :

Oracle Home=D:oracleclient OCI library=D:oracleclientoci.dll

5、再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。

第三种情况:

本机未安装ORACLE服务器,但是安装了oracle客户端,也安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以pl sql development远程连接oracle服务端数据库为例:

1、打开oracle客户端中的net manager,配置要远程连接的数据库名、IP地址等,如果net manager中没有要远程连接的数据库名,则新建即可。

2、其他步骤与第二种情况中的2---5相同。

第四种情况:

本机未安装oracle服务器,也未安装pl sql development、toad sql development、sql navigator等管理数据库的工具,但是安装了oracle客户端。在虚拟机或者另一台电脑上安装了ORACLE服务器,也就是虚拟机或者另一台电脑此时作为服务器。

这种情况下,本人以oracle客户端中的sqlplus远程连接oracle服务端数据库为例:

1、打开oracle客户端中的net manager,配置要远程连接的数据库名、IP地址等,如果net manager中没有要远程连接的数据库名,则新建即可。

2、同第二种情况中的步骤二。

3、同第二种情况中的步骤三。

4、打开sqlplus:

(1)如果用sys用户登入,则用户名:sys 密码:xxxxxx 主机字符串:要连接的数据库名 as sysdba,登入即可。

(2)如果用其他用户登入,则用户名:xxx 密码:xxxxxx 主机字符串:要连接的数据库名,登入即可。

注意事项:

1、服务器端和客户端防火墙需要关闭;

2、我们经常会遇到***服务无法启动,那么需要打开Net Configuration Assistant修复,或者新建***服务。

3、数据库密码如果忘了怎么办?按照以下方法修改密码即可:

开始-->运行-->cmd

输入 :sqlplus /nolog 回车

输入 :connect / as sysdba 回车

用户解锁 : alter user system account unlock 回车

修改密码:alter user system identified by manager

4、怎样判断数据库是运行在归档模式下还是运行在非归档模式下?

进入dbastudio,历程--〉数据库---〉归档查看。

5、另外,如果本机和别的机子均安装了oracle服务器端,那么本机如果要连接别的机子,就必须修改tnsnames.ora.

Ⅷ cmd连接远程oracle数据库

您好,提问者:
这样可以是可以,但是如果那个机器没有安装或者配置oracle环境变量就找不到了。
用.bat脚本的时候先检查一下环境变量是否有这个路径存在,如果没有就提示,有就连接。

热点内容
linux驱动spi 发布:2024-12-23 13:25:22 浏览:114
王思聪为什么配服务器 发布:2024-12-23 13:19:48 浏览:373
安卓型号代表什么 发布:2024-12-23 13:13:29 浏览:779
改密码哪里加问题 发布:2024-12-23 13:11:43 浏览:864
安卓手机多开哪个不卡 发布:2024-12-23 13:10:16 浏览:588
源码反码补码 发布:2024-12-23 13:09:25 浏览:259
方向算法 发布:2024-12-23 13:09:16 浏览:42
为什么安卓充电线充不上电了 发布:2024-12-23 13:06:14 浏览:223
配置管理由什么组成 发布:2024-12-23 12:57:47 浏览:560
运动版雅阁有哪些配置 发布:2024-12-23 12:57:45 浏览:277