你在odbc中的服务名不对,这个服务名是和tnsnames.ora中的一样的,你用net8 config assistant建一个服务名,然后用odbc test测试一下,如果测试通过,就一定没问题了。

解决方案 »

  1.   

    看看你在ODBC中建立的数据源对不对.
    重要是你的TNS名设置与已经建立的TNS名是不是一至.
      

  2.   

    感谢各位,回答者均有分。我的计算机里是WIN2K/Professional,ORACLE 8.05.
    我现在遇到的问题是:
    阿木伯大虾提过在tnsnames.ora文件中加入以下代码:
    ORADB =     (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521)))
           (CONNECT_DATA =(SERVICE_NAME = oradb)))
    但是我的计算机上有三个tnsnames.ora文件分别在
    C:\RANT\NET80\TNSAPI
    C:\RANT\NET80\ADMIN
    C:\RANT\NET80\ADMIN\SAMPLE
    该改哪一个呢?
      

  3.   

    至jery_lu(jery) :
    我在ODBC中的服务名和TNSNAMES.ora里一样,用net easy config又按您的方法新建一个服务名,并且测试通过了。
    但是我在导出ACCESS表时还是出现对话框:
    ODBC-调用失败
                 [oracle][odbc][ora]ORA-12154: TNS:无法处理服务名
                 (#12154)[Microsoft][ODBC驱动程序 管理器]驱动程序的SQLSetConnectAttr失败(#0)
    [Microsoft][ODBC驱动程序 管理器]驱动程序的SQLSetConnectAttr失败(#0)大家帮帮我啊,救命啊
      

  4.   

    至各位:不好意思,
    ODBC TEST aaa(系统机器数据源)时,出现对话框“TNS:无法处理服务名”
    对话框的“help to avoid error”内容拷贝如下:请各位帮忙看看是什么问题,该怎么解决问题呢?
    There is something wrong with the datasource you set up. Specifically, Oracle doesn't recognise the alias you placed in the "SQL*Net ConnectString" field of the datasource setup. Go to control panel-->ODBC32 Run the ODBC Administrator. In the list of datasources, double click on the datasource that is giving you trouble. Check out the "SQL*Net Connect String" field.If you intend to use Sqlnet version 2, this should be a single word with no prefix (for example "mydb") which corresponds to an alias located in \ORAWIN95\NETWORK\ADMIN\TNSNAMES.ORA or \ORANT\NETWORK\ADMIN\TNSNAMES.ORA that you set up using the "Sqlnet Easy Config" icon.Note that prefixes such as "x:" or "t:" should not be used unless you are using sqlnet v1.Before you proceed, this value you entered in the "SQL*NET Connect String" field should first be tested out using ORAWIN95\BIN\PLUS3X.EXE or \ORANT\BIN\PLUS3X.EXE or NETTEST.EXE or TNSPING.EXE. (Don't just run the icon for these programs -- you need to make sure you don't accidentally run a version of the program located in \ORAWIN\BIN  which is 16 bit and will not help).Once one of these programs accept the alias, then ODBC applications using a datasource associated with that alias will too. If these programs also get the 12154, forget about ODBC for the time being and concentrate on setting up a sqlnet alias that works with one of these programs.If this suggestion does not fix the problem, please go to the ODBCTEST menu and click on HELP->'Advanced ODBC Debugging'.
      

  5.   

    Oracle中,所有对象的名称都是以大写字母保存的,所以,如果Access的字段中含有小写字母,会出现以下错误。将小写字母改为大写就可以了。
      

  6.   

    Oracle中,所有对象的名称都是以大写字母保存的,所以,如果Access的字段中含有小写字母,会出现错误.
      

  7.   

    也许这篇文章会对你有帮助:
    如何将 Access 数据导出到 Oracle 数据库中?  
    系统环境: 
    1、操作系统:Windows 2000 Server,机器内存128M
    2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
    3、安装路径:C:\ORACLE实现步骤: 1、打开MicroSoft Access 20002、文件(F)→新建(N)→数据库→起名为test.mdb→创建3、用鼠标左键单击“使用设计器创建表”,输入以下字段,
       字段A5设置成主键,存盘为test表,如图:   注:Oracle中,所有对象的名称都是以大写字母保存的,
        所以,如果Access的字段中含有小写字母,会出现以下错误        如果表名为小写字母,则可以成功导入。
    4、在test表中输入一些记录
    5、连入SQL*Plus
       以system/manager用户登录,
       SQL> conn system/manager   创建新的用户:如user1/pass1,赋予connect,resource权限。
       SQL> grant connect,resource to user1 identified by pass1;   Oracle数据库的实例名,本例:oradb
       Oracle用户名,本例:user1
       确认Oracle实例、TNSListener服务都已启动成功6、配置ODBC:开始→设置→控制面板→管理工具→数据源(ODBC)→      添加一个系统DSN:
       数据源名称(自己设,好记就行如:aaa)
       服务名称(Oracle主机字符串:oradb)
       用户名称(Oracle用户名:如user1)   tnsnames.ora文件中
       ORADB =
         (DESCRIPTION =
           (ADDRESS_LIST =
             (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521))
           )
           (CONNECT_DATA =
             (SERVICE_NAME = oradb)
           )
         )
    7、导出记录
          在test表上单击鼠标右键→导出→保存类型为ODBC databases()→      输入目标表的名称→     (可以使用默认的相同表名,但要注意改成大写,否则在Oracle中操作此表时,需要用双引号括起表名)   选择ODBC源(aaa)→确定→      输入user1用户的密码(pass1)→OK→   
    8、连接到SQL*Plus中
      

  8.   

    把你的计算机与别人的PING一下。