반응형

"ORA-01779: cannot modify a column which maps to a non key-preserved table" 에러 해결 방법

ORA-01779 Cause: 

  • An attempt was made to insert or update columns of a join view which map to a non-key-preserved table.

ORA-01779 원인: 

  • 키가 보존되지 않은 테이블에 매핑되는 조인 뷰의 열을 삽입하거나 업데이트하려고 했습니다.

ORA-01779 Action: 

  • Modify the underlying base tables directly.

ORA-01779 조치: 

  • 기본 테이블을 직접 수정하십시오.

ORA-01779 해결: 

  • 머지문으로 해결 

 

반응형
반응형

"ORA-01422: 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다"에러 해결 방법

ORA-01422: 발생원인

Cause: The number specified in exact fetch is less than the rows returned.

원인: 정확한 가져오기에 지정된 숫자가 반환된 행보다 적습니다.

ORA-01422 원인

원인:INTO에 여러건 부여할수 없음

DECLARE
 V_SORT NVARCHAR2(100);
begin
    SELECT 1 INTO V_SORT FROM 
    (
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 2 SORT FROM DUAL     
    ) 
    ;
    dbms_output.put_line('V_SORT : ' || TO_CHAR( V_SORT));
EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line( 'SQLERRM :' || SQLERRM ||CHR(13) || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
end;

ORA-01422: 조치방법

Action: Rewrite the query or change number of rows requested

조치: 쿼리를 다시 작성하거나 요청된 행 수를 변경하십시오.

ORA-01422 조치

DECLARE
 V_SORT NVARCHAR2(100);
begin
    SELECT 1 INTO V_SORT FROM 
    (
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 1 SORT FROM DUAL UNION ALL
        SELECT 2 SORT FROM DUAL     
    )X
    WHERE X.SORT =2
    ;
    dbms_output.put_line('V_SORT : ' || TO_CHAR( V_SORT));
EXCEPTION WHEN OTHERS THEN
    dbms_output.put_line( 'SQLERRM :' || SQLERRM ||CHR(13) || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
end;
반응형
반응형

"ora-28014 cannot drop administrative user or role"에러 해결 방법

ORA-28014: 원인

ORA-28014: Cause

  • DROP USER [USER_NAME] CASCADE;

ORA-28014
ORA-28014:삭제 할수 없습니다

ORA-28014:  조치 

ORA-28014: Action

  • ALTER SESSION SET "_oracle_script"=TRUE ;

ORA-28014
ORA-28014 : 삭제

반응형
반응형
DECLARE
    v_empno         emp.empno%TYPE;
    v_ename         emp.ename%TYPE;
    v_job           emp.job%TYPE := 'SALESMAN';
    v_emp_refcur    SYS_REFCURSOR;
BEGIN
    DBMS_OUTPUT.PUT_LINE('EMPLOYEES WITH JOB ' || v_job);
    DBMS_OUTPUT.PUT_LINE('EMPNO    ENAME');
    DBMS_OUTPUT.PUT_LINE('-----    -------');
    emp_by_job(v_job, v_emp_refcur);
    LOOP
        FETCH v_emp_refcur INTO v_empno, v_ename;
        EXIT WHEN v_emp_refcur%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE(v_empno || '     ' || v_ename);
    END LOOP;
    CLOSE v_emp_refcur;
END;

반응형

'Oracle > SQL' 카테고리의 다른 글

oracle 사용자 계정 생성  (0) 2023.07.05
파라메트'x,x,x' 를 WHERE 조건절에서 IN 으로 사용 IN ,  (0) 2023.05.13
반응형

git 상태 확인 

git status

git 브랜치 체크아웃 명령어

git checkout

git 머지 명령어

git merge

git 전송 명령어

git push
반응형

+ Recent posts