2012-02-16 68 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

相關問題