2012-02-16 34 views
1

我试图在我们的开发环境中删除Oracle 11g中的模式,并且返回SQL错误:没有更多数据要从套接字中读取。架构上没有负载,因为它只是一个开发数据库。这是一个小分贝,没有任何疯狂的事情发生。我总是看到这个错误。重新启动实例有时可以解决问题。我似乎无法找到任何指向解决方案的信息。谢谢!在Oracle中删除模式:SQL错误:没有更多数据要从套接字中读取

回答

1

据我所知,这个消息通常是由于一个错误而产生的。此外,当它出现在您的警报日志和/或跟踪文件中的条目将包含关于错误实际可能的更多细节。为会话运行找到跟踪文件:

select U_DUMP.value 
     || '/' 
     || DB_NAME.value 
     || '_ora_' 
     || V$PROCESS.SPID 
     || nvl2(V$PROCESS.TRACEID, '_' || V$PROCESS.TRACEID, null) 
     || '.trc' 
     "Trace File" 
    from V$PARAMETER U_DUMP 
     cross join V$PARAMETER DB_NAME 
     cross join V$PROCESS 
     join V$SESSION 
     on V$PROCESS.ADDR = V$SESSION.PADDR 
where U_DUMP.NAME = 'user_dump_dest' 
     and DB_NAME.NAME = 'db_name'     
     and v$session.audsid=sys_context('userenv','sessionid'); 
+0

我试过此命令后直接我试图删除用户“无”。我仍然得到错误17410“没有更多的数据从套接字读取”,并且查询什么也没有返回。有时,即使在该点之后尝试访问模式,也会再次出现“无法从套接字读取数据”错误。 – philrabin 2012-02-20 18:41:58

1

我公司的一位dba给了我这一个。这是

CREATE OR REPLACE PROCEDURE "SYS"."DROP_SCHEMA_FAST" (pSchema IN 
    VARCHAR2) 
IS 
    cnt NUMBER(5) := 0; 
    sql1 varchar2(4000); 
    x PLS_INTEGER; 
--disable constraints: 
    cursor cur1 is select 'alter table ' || OWNER ||'.'||table_name||' disable constraint '||constraint_name sql2 
      from all_constraints where owner=pSchema and status='ENABLED' 
      and table_name not like 'BIN$%' and constraint_name not like 'SYS_%' and constraint_name not like '%PK%'; 

    cursor cur2 is select 'alter table ' || OWNER ||'.'||table_name||' disable constraint '||constraint_name sql2 
      from all_constraints where owner=pSchema and status='ENABLED' 
      and table_name not like 'BIN$%' and constraint_name not like 'SYS_%'; 

--truncate all tables: 
cursor cur3 is select 'truncate table ' || OWNER ||'.'||table_name sql2 from all_tables where owner=pSchema 
and table_name not like 'BIN$%'; 

BEGIN 
    SELECT COUNT(*) INTO cnt FROM dba_users WHERE UPPER(username) = UPPER(pSchema); 
    IF (cnt <= 0) THEN 
     RETURN; 
    END IF; 
    sql1 := 'ALTER USER ' || UPPER(pSchema) || ' ACCOUNT LOCK'; 
    EXECUTE IMMEDIATE sql1; 

--disable constraints: 
FOR ao_rec IN cur1 LOOP 
     EXECUTE IMMEDIATE ao_rec.sql2; 
END LOOP; 

FOR ao_rec IN cur2 LOOP 
     EXECUTE IMMEDIATE ao_rec.sql2; 
END LOOP; 
--truncate all tables: 
FOR ao_rec IN cur3 LOOP 
     EXECUTE IMMEDIATE ao_rec.sql2; 
END LOOP; 

--drop schema: 
sql1 := 'DROP USER ' || UPPER(pSchema) || ' CASCADE'; 
    EXECUTE IMMEDIATE sql1; 
exception when others then null; 
END; 
0

也有这个问题,得到了通过设置固定的“PLScope标识符:”在Tools->Preferences ->Database->PL/SQL Compiler

+0

请检查这个[URL](http://stackoverflow.com/help)它将有助于提升您的内容质量 – 2016-05-17 23:20:04

+0

好吧,谢谢,但我已经走了。这是我的答案错了吗?如果是这样,我会解决这个问题! (并抱歉打扰) – student0495 2016-05-18 12:16:47

+0

我应该添加一些类似文档吗?这只是为我解决了这个问题,不记得我在哪里找到了答案,但我只是为了让错误消失而做的。 – student0495 2016-05-18 12:18:14

相关问题