Oracle11g TNS-01153:无法处理字符串

Oracle11g TNS-01153:无法处理字符串,oracle11g,Oracle11g,我已在windows 7中安装了Oracle 11g,我正在连接Oracle,但出现错误 TNS-01153:无法处理字符串 这是我的TNSNAMES.ORA: work_prod = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =localhost) (PORT = 1521)) ) (CONNECT_DATA =(SID =workprod)) ) LISTEN

我已在windows 7中安装了Oracle 11g,我正在连接Oracle,但出现错误 TNS-01153:无法处理字符串

这是我的
TNSNAMES.ORA

work_prod =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =localhost) (PORT = 1521))
    )
    (CONNECT_DATA =(SID =workprod))
  ) 
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY =workprod))
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)
还有我的
LISTENER.ORA

work_prod =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =localhost) (PORT = 1521))
    )
    (CONNECT_DATA =(SID =workprod))
  ) 
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY =workprod))
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

您的第二个
侦听器.ora
地址在
localhost
之后缺少一个右括号:

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY =workprod))
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost(PORT = 1521))
  )
。。。应该是:

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY =workprod))
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))
  )
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = PLSExtProc))
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = workprod)
    )
  )
这表明,除了格式设置之外,您还可以手动编辑,而不是使用
netca

你的SID列表看起来也很奇怪;我认为应该是:

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY =workprod))
    (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT = 1521))
  )
LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = IPC)(KEY = PLSExtProc))
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = workprod)
      (ORACLE_HOME = C:\MY_DISK\G\Oracle_database\product\11.2.0\dbhome_1)
      (PROGRAM = workprod)
    )
  )
。。。假设您的数据库SID和服务名称都是
workprod
。但是
DEFAULT\u SERVICE\u LISTENER
建议您的数据库名为XE,这意味着您使用的是Oracle 11g Express Edition,因此有些地方仍然不太合适。如果你是从别的地方抄来的,也许那句话就不应该在那里


我认为ORA-28547可能来自TCP连接,但试图切换到
extproc
,混合协议;但不完全确定。

您是如何连接的-是什么代码/命令产生了错误?“lsnrctl start”命令。当我在CMD中执行时,谢谢Alex,但您能告诉我如何使用netca生成侦听器吗???@kartik-实际上,此时您可能需要net manager,并按照Oracle Database Net Services管理员指南的链接决定使用哪种工具。谢谢。。!!让我检查一下它是否正常工作,但出现了另一个错误ORA-28547:连接到服务器失败,可能是Oracle net管理错误。@kartik-我很想扔掉这些文件,在netca中从头开始,但可以看到一些奇怪的东西,所以我会更新答案。