我正在尝试连接到远程服务器上的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。
我很乐意帮忙。感谢。
答案 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)
答案 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)))