proc - 连接到远程oracle数据库

时间:2013-10-10 07:32:01

标签: oracle unix hp-ux proc

我正在尝试连接到远程服务器上的oracle DB:

userid = getenv("ORACLE_USER");
oracle_password  = getenv("ORACLE_USER_PASSWORD");
db_name = getenv("DB_NAME");

EXEC SQL CONNECT :userid IDENTIFIED BY :oracle_password USING :db_name;

我收到错误:ORA-01034。

我很乐意帮忙。感谢。

3 个答案:

答案 0 :(得分:0)

EXEC SQL BEGIN DECLARE SECTION; 
userid VARCHAR(50);
oracle_password VARCHAR(50);
db_name VARCHAR(50);
EXEC SQL  END DECLARE SECTION; 
main()
{
userid.arr = getenv("ORACLE_USER");
userid.len = strlen(userid.arr);
oracle_password.arr  = getenv("ORACLE_USER_PASSWORD");
oracle_password.len = strlen(oracle_password.arr);
db_name.arr = getenv("DB_NAME");
db_name.len = strlen(db_name.arr);
EXEC SQL CONNECT :userid IDENTIFIED BY :oracle_password USING :db_name;
if (sqlca.sqlcode==0)
{
prnitf("sucessful");
}
else
{
printf("failed");
return;
}
}

希望它对你有用。

答案 1 :(得分:0)

数据库未启动时,您将收到ORA-01034错误。

可能的原因包括:

  • SGA需要的空间比分配给它的空间要多。

  • 指向实例的操作系统变量未正确定义。

以下行可能会解决您的问题

Check out link

答案 2 :(得分:0)

首先,使用其他格式:     EXEC SQL连接:usr_pwd; 主机变量usr_pwd包含您的用户名和密码,并用斜杠(/)分隔。

然后为usr_pwd附加远程服务器信息: “用户/密码@(DESCRIPTION =(地址列表=(地址=(协议= TCP)(主机= xx.xx.xx.xx)(端口= xxxx)))((连接数据=(服务名称= xxxxx))))”

要进行快速验证,可以使用sqlplus来查看它是否先连接,然后插入代码并进行编译: sqlplus user / pwd @(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = xxxx)))((CONNECT_DATA =(SERVICE_NAME = xxxxx)))