오류 코드 ORA-06550-Oracle에서 문자열 연결 문제

Schuyler

저는 매달 수입이 포함 된 테이블을 만들고 있습니다.
이를 위해 내부에 삽입 문이있는 for 루프를 사용하고 있습니다.
내가 문제가있는 것은 숫자를 한 달로 변환 한 다음 문자로 변환하는 것입니다.

내 코드는 다음과 같습니다.

BEGIN  
FOR i IN 1..12   
LOOP  
    INSERT INTO REVENUE ( TO_CHAR(TO_DATE(i, 'MM'), 'MON') || '2009'  
    , select sum(transaction_amount)  

하지만 이것을 실행하면 다음과 같은 오류가 발생합니다.

      INSERT INTO REVENUE ( TO_CHAR(TO_DATE(i, 'MM'), 'MON') || '2009'  
                                     *  
ERROR at line 4:
ORA-06550: line 4, column 31:
PL/SQL: ORA-00917: missing comma

내가 여기서 뭘 잘못하고 있니?

알렉스 풀

go-oleg가 옳습니다. 문제는 연결이 아니라 당신 syntax for the insert statement이 틀렸다는 것입니다. valuesvalues ​​절에서 키워드 가 누락되었습니다 .

BEGIN  
FOR i IN 1..12   
LOOP  
    INSERT INTO REVENUE VALUES ( TO_CHAR(TO_DATE(i, 'MM'), 'MON') || '2009'  
    , select sum(transaction_amount)
...  

또는 삽입하려는 열 이름을 이상적으로 지정하십시오.

BEGIN  
FOR i IN 1..12   
LOOP  
    INSERT INTO REVENUE ( <column1>, <column2> )
    VALUES ( TO_CHAR(TO_DATE(i, 'MM'), 'MON') || '2009'  
    , select sum(transaction_amount)  
    ...

values키워드 가 없기 때문에 파서는 괄호가 열 목록을 둘러싸고 있다고 생각하므로 다음 여는 괄호를 볼 때 혼란 스럽습니다 to_char. 오류는 괄호에 대한 것입니다. ma로 시작하면 char 31입니다. 오류 위치를 표시하는 별표가 약간 잘못된 위치에 나타나는 이유를 설명합니다. 열 목록의 구분 기호로 쉼표가 필요합니다. ' to_char'이 유효한 열 이름 인지 여부를 평가하지 않은 것 같습니다 .

실제로 두 번째 값에 사용하는 선택은 하위 쿼리 버전을 사용하려고 할 수 있음을 나타냅니다. 나머지 성명서에서 수행중인 다른 작업에 따라 다음을 원할 수 있습니다.

BEGIN  
FOR i IN 1..12   
LOOP  
    INSERT INTO REVENUE ( <column1>, <column2> )
    SELECT TO_CHAR(TO_DATE(i, 'MM'), 'MON') || '2009'  
    , sum(transaction_amount)
    FROM <some other table>
    ...

루프가 아닌 단일 인서트로 그렇게 할 수 있다고 생각하지만 전체를 보지 않고는 확신하기가 어렵습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

출력에서 Java 문자열 연결 오류

프로세스 코드 오류 : ORA-06502 : PL / SQL : 숫자 또는 값 오류 : 문자에서 숫자로 변환 오류

문자열 연결에 대한 문자열 오버로드 + 연산자는 어디에 있습니까?

Oracle-ORA-01489 : 문자열 연결 결과가 너무 깁니다

자바 스크립트에서 utf 문자열 연결 오류

Entity Framework 6 코드에서 연결 문자열 설정

Entity Framework에서 연결 문자열 하드 코딩

Azure 오류-연결 문자열 문제

EF 코어에서 스캐 폴딩 할 때 SQL 연결 문자열 오류가 발생합니까?

결과의 오류 코드를 문자열로 변환

오류 수신 : "ORA-20999 : SQL 쿼리를 구문 분석하지 못했습니다! <p> ORA-06550 : 3 행, 25 열 : ORA-00936 : 표현식 누락

연결 문자열에서 db 이름을 사용할 때 Mongoose 연결 오류

Blazor .net 핵심 앱에서 연결 문자열 찾기 오류

Postgresql 문자열 연결 : 오류 : "msg"또는 그 근처에서 구문 오류

ORACLE : "선택 위치"에서 ORA-06550 오류

PLSQL 코드 오류-ORA 06550

ORA-06550 : Oracle SqlPlus

ORA-06550 : Oracle SqlPlus

기본 Python 문자열 연결 + 수학 문제, 코드 포함

ODBC 드라이버의 SQLite3 : 문자열 연결 오류

연결된 목록에서 세분화 오류 (코어 덤프) 문제 해결

NServiceBus Azure 큐 전송 : 코드에서 연결 문자열 설정

연결 문자열 : 구성 파일에서 코드로 변환

Java에서 문자열을 유니 코드로 연결

MongoDB : 구성 서버를 복제 세트로 업그레이드 할 때 연결 문자열 오류

Oracle의 문자열 연결에서 날짜 채우기 오류

코드에 연결 문자열을 추가한 후 오류가 발생하는 이유는 무엇입니까?

Oracle SQL 오류 코드 ORA-06502: PL/SQL: 숫자 또는 값 오류: 18행에서 문자열 버퍼가 너무 작습니다.

코드에서 연결 문자열에 자격 증명 추가