如题:
1.以下问题求解:SQL> conn sys/sys@ora242 as sysdba
ERROR:
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序
2.ref cursor和sys_refcursor的区别

解决方案 »

  1.   

    1. ORA-12516: TNS:listener could not find available handler with matching protocol stack 
    Cause: None of the known and available service handlers for the given SERVICE_NAME support the client's protocol stack: transport, session, and presentation protocols.
     
    Action: Check to make sure that the service handlers (e.g. dispatchers) for the given SERVICE_NAME are registered with the listener, are accepting connections, and that they are properly configured to support the desired protocols.
     2. 搜了一下, 参考:
    http://www.enterprisedb.com/documentation/spl-ref-cursors.html
      

  2.   

    运行  tns ora242 , 可以ping通吗?首先保证你的listener和实例服务配置好了, 依次再命令行下停止并重启服务。 
    命令行下:c:\net start 
    会发现类似的以下服务(版本不同,服务名可能有区别 我的是10.2),
    OracleOraDb10g_home1iSQL*Plus
    OracleOraDb10g_home1TNSListener
    OracleOraHome92iSQL*Plus
    OracleServiceOra242 (加入你的标志字符为ora242, 则相应的实例服务名为这个)再依次执行下列试试:
    c:\net stop OracleOraDb10g_home1TNSListener
    c:\net stop OracleOraDb10g_OracleServiceOra242 
    c:\net start OracleOraDb10g_home1TNSListener
    c:\net start OracleOraDb10g_OracleServiceOra242 
      

  3.   

    回楼上:
       可以ping通!
       有时能登陆上去,有时又报错:监听程序找不到符合协议堆栈要求的可用处理程序
      

  4.   

    http://www.cnblogs.com/aloha/archive/2009/08/23/1366178.html
     游标的区别比较
      

  5.   

    ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程 
    解决方法:加大PROCESSES 
    sessions=(1.1*process+5) show parameter processes; 
    show parameter sessions; 
    alter system set processes=300 scope=spfile; 
    alter system set sessions=335 scope=spfile; 
    需要附加的操作: 
    show parameter SHARED_SERVER; 
    alter system set SHARED_SERVER =10 scope=spfile; 
    但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/proc/kernel 中semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生 效。不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。 
    semmns的计算公式为: 
    SEMMNS>processes+instance_processes+system 
    processes=数据库参数processes的值 
    instance_processes=5(smon,pmon,dbwr,lgwr,arch) 
    system=系统所占用信号量。系统所占用信号量可用下列命令查出: 
    #ipcs -s 
    其中列NSEMS显示系统已占用信号量。其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。我们可以放心大胆地使用数据库了。