PL / SQL 컴파일 오류-PLS-00382 : 표현식이 잘못된 유형입니다.

스티븐 월시

아래 PL / SQL을 실행 중입니다 ...

DECLARE
BEGIN 
FOR i IN (select VALUE from REWARDS)
LOOP 
insert into BT_CMS.T_REWARDS_TYPES 
(ID, REWARD_LABEL, REWARD_VALUE, REWARD_METHOD, UPDATE_USER, UPDATE_DATE, PAYMENT_PROVIDER_ID, CREATE_DATE, COUNTRY_CODE_ID) 
values 
(BT_CMS.SEQ_REWARD_TYPE_ID.nextval, 'R' || i || ' Real Time', i, 'Airtime', 'DEVOPS-826', sysdate, 120, sysdate, 206); 
END LOOP; 
END;

... 아래 오류가 발생합니다 ...

ORA-06550: line 8, column 72:
PLS-00382: expression is of wrong type
ORA-06550: line 8, column 52:
PLS-00382: expression is of wrong type
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.

나는 문제가 값으로 대체되는 것이 문제라고 확신하지만 정확히 문제가 무엇인지 모르겠습니다. i가 선택되는 REWARDS 테이블의 VALUE 컬럼은 data_type = VARCHAR2 (20 BYTE)입니다. 삽입하려는 REWARD_LABEL 열에는 data_type = VARCHAR2 (50 CHAR)가 있습니다.

알렉세이

루프 내에서 i레코드의 (고유 한) 필드가 아닌 전체 레코드를 참조합니다. i.value대신 사용해야 합니다 i.

DECLARE
BEGIN
    FOR i IN (SELECT VALUE FROM REWARDS)
    LOOP
        INSERT INTO BT_CMS.T_REWARDS_TYPES(
                                           ID,
                                           REWARD_LABEL,
                                           REWARD_VALUE,
                                           REWARD_METHOD,
                                           UPDATE_USER,
                                           UPDATE_DATE,
                                           PAYMENT_PROVIDER_ID,
                                           CREATE_DATE,
                                           COUNTRY_CODE_ID
                                          )
             VALUES (
                     BT_CMS.SEQ_REWARD_TYPE_ID.NEXTVAL,
                     'R' || i.VALUE || ' Real Time',
                     i.VALUE,
                     'Airtime',
                     'DEVOPS-826',
                     SYSDATE,
                     120,
                     SYSDATE,
                     206
                    );
    END LOOP;
END;

더 나은 방법은 커서를 반복하는 대신 단일 삽입 선택을 사용하는 것입니다. 예를 들면 :

INSERT INTO BT_CMS.T_REWARDS_TYPES(
                                   ID,
                                   REWARD_LABEL,
                                   REWARD_VALUE,
                                   REWARD_METHOD,
                                   UPDATE_USER,
                                   UPDATE_DATE,
                                   PAYMENT_PROVIDER_ID,
                                   CREATE_DATE,
                                   COUNTRY_CODE_ID
                                  )
    SELECT BT_CMS.SEQ_REWARD_TYPE_ID.NEXTVAL,
           'R' || r.VALUE || ' Real Time',
           r.VALUE,
           'Airtime',
           'DEVOPS-826',
           SYSDATE,
           120,
           SYSDATE,
           206
      FROM REWARDS r

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

PLS-00382 : 표현식이 잘못된 유형입니다. PL / SQL : 명령문이 무시되었습니다.

PLS-00382: 표현식의 유형이 잘못되었습니다. PL/SQL: 명령문이 무시됨

Oracle PLS-00382 : 표현식이 잘못된 유형 06550입니다.

Oracle PLS-00382 : 표현식이 잘못된 유형 06550입니다.

PLS-00382 : 커서에서 표현식이 잘못된 유형입니다.

PL / SQL 오류-잘못된 파일 ID

PL / SQL 오류-잘못된 파일 ID

PL SQL 프로 시저 경고 컴파일 오류 PLS-00103

PL / SQL-변수 "유형이어야 함"컴파일 오류

PLS-00382: 표현식이 익명 블록에서 패키지 기능을 실행하는 형식이 잘못되었습니다.

이상한 PL / SQL 오류-PLS-00103

PLS-00103 : pl / sql 오류

PLS 00306 오류 PL / SQL

델파이 컴파일 오류 F2048 잘못된 단위 형식

컴파일 오류 : (1)의 이름에 잘못된 문자가 있습니다.

VBA "컴파일 오류 : 형식 블록 외부에서 잘못된 문"

인수의 개수 또는 유형이 잘못되었습니다. PL / SQL 오류

식이 잘못된 유형입니다.-Oracle 오류

Oracle PL / SQL 오류 PLS-00103

PL SQL, 오류 (32,43) : PLS-00201 : 식별자 'HR'을 선언해야합니다.

JML 오류 : .class 파일 형식이 잘못된 것 같습니다.

웹 사이트에서 구성 파일 형식이 잘못된 XML 오류 이유는 무엇입니까?

컴파일 오류 : 상수 표현식이 필요합니다.

다음 PL SQL 프로그램에서 오류는 무엇입니까? 컴파일 오류입니까?

이 Scala / Play 컴파일 오류를 해결하는 방법 (잘못된 유형이 반환 됨)?

이항 연산자 컴파일 오류에 대한 잘못된 피연산자 유형

Clojure 컴파일러가 잘못된 유형 힌트에 대해 오류를 발생시키지 않는 이유는 무엇입니까?

다음 PL/SQL 블록에서 잘못된 식별자 오류를 디버깅하는 방법은 무엇입니까?

컴파일 오류 : 잘못된 식 시작

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관