试试下面这样!EXEC SQL BEGIN DECLARE SECTION; 
char *username = "sys@my_10.200.1.195";
char *password = "123";
EXEC SQL END DECLARE SECTION; 
EXEC SQL CONNECT :username IDENTIFIED BY :password ;

解决方案 »

  1.   

    一样出错。
    我的oracle的sid=my,ip=10.200.1.195
      

  2.   

    那你把username password 定义成vchar
      

  3.   

    使用TNSNAME!下面代码中bjsr为Tnsnames.ora的一项1)TNSNAMES.ORA
    BJSR =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SID = ORCL)
        )
      )
    2) pc代码片断:EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR uid[80];        /* username          */
    VARCHAR pwd[20];        /* password          */int     empno;          /* employee number   */
    VARCHAR ename[15];      /* employee name     */
    int     deptno;         /* department number */
    VARCHAR dname[15];      /* department name   */VARCHAR job[15];        /* employee job      */
    int     sal;            /* employee salary   */
    EXEC SQL END DECLARE SECTION;
    EXEC SQL INCLUDE SQLCA.H;void main()
    {
       strcpy((char *)uid.arr,"SCOTT@bjsr");
       uid.len = (short) strlen((char *)uid.arr);
       strcpy((char *)pwd.arr,"TIGER");
       pwd.len = (short) strlen((char *)pwd.arr);   EXEC SQL WHENEVER SQLERROR GOTO errexit;
       EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;   ...