我用sqlldr导入数据时,用的是sys用户,而sys用户的身份是SYSDBA
在写sqlldr命令的参数userid的时候写了如下的参数:sqlldr userid=sys/sys@Mydata
(mydata是我的实例名)这样连接就会出现错误。无法登陆。我想原因是sys用户是SYSDBA类型身份。
于是我换了例外一个非SYSDBA身份的用户试了一下,sqlldr执行成功。我的问题是(1)sqldr后面的参数userid可不可以指定登陆用户的身份,(如sqlldr userid=sys/sys@Mydata as SYSDBA)
          (2)指定登陆用户的时候只写上用户名和密码(如sys/sys@Mydata),那么默认的登陆身份是什么,是不是normal,这个默认的登录身份可不可以改变呢?    
(3)用sqlplus登陆,不写登陆身份的时候,默认的登陆身份是什么?这里的默认登录身份可不可以改?请各位高手看了之后不吝赐教,不胜感激!

解决方案 »

  1.   

    (1) 试一下:
    userid='sys/sys@Mydata as SYSDBA'
    (2) 默认的应该就是normal,可以改变为sysdba, sysoper,但必须是sys用户
    (3) normal,一样可以选择。
      

  2.   

    (1)你要导入到SYS用户的数据?为什么要指定AS SYSDBA?
    (2)(3)默认登入的是SYS ,必须是AS SYSDBA角色登入,否则会报错
    ERROR:
    ORA-28009: connection to sys should be as sysdba or sysoper
    或者以as sysoper的角色登入
      

  3.   

    换成这样就对了!谢谢。
    另外问一下:怎么把默认的改变为sysdba,或者是sysoper?
      

  4.   


    (1)不指定暗示SYSDBA 就会出错
              SQL*Loader-128:  无法开始会话
              ORA-01017: invalid username/password; logon denied
      

  5.   

    搞不懂的一件事是为啥要导入到sys用户下。