3개의 변수가 있는 저장 프로시저 작성을 위한 plSQL 구문 (plSQL Syntax For Writing Stored Procedure w/ 3 Variables)


문제 설명

3개의 변수가 있는 저장 프로시저 작성을 위한 plSQL 구문 (plSQL Syntax For Writing Stored Procedure w/ 3 Variables)

3개의 변수를 허용하는 저장 프로시저를 만드는 데 필요한 이 긴 SQL 문 블록이 있습니다. 변수는 송장, NewDate, TransactionDate이고 데이터 유형은 각각 정수, 날짜 및 날짜입니다. 저장 프로시저를 만들려고 했지만 구문이 엉망입니다. Coldfusion 및 cfstoredproc을 사용하여 저장 프로시저를 호출할 것이므로 파운드 기호를 사용합니다. ColdFusion에 대한 도움이 필요하지 않습니다. 가능한 한 많은 정보를 제공하려고 합니다.

truncate table fix_the_date; commit; 
insert into fix_the_date 
(Location,Invoice,NewDate,TransactionDate) 
values 
('Corporate', '#invoice#'
, to_date('#NewDate#', 'mm/dd/yyyy')
,to_date('#TransactionDate#','mm/dd/yyyy')); 
commit;
<!‑‑‑ About a dozen other queries go here that I won't waste your time with‑‑‑>

업데이트 1: 다음은 현재 저장 프로시저에 대한 정보입니다. 다음 오류가 발생합니다.

데이터베이스 쿼리 실행 중 오류가 발생했습니다. [매크로미디어][오라클 JDBC 드라이버][오라클]ORA‑01858:


참조 솔루션

방법 1:

Your issue probably relates to trying to issue DDL statements in a stored procedure (see here).

I'm going to assume that your NewDate and TransactionDate are also varchar2 (since your insert statement won't work if they're actually dates).

CREATE OR REPLACE PROCEDURE my_proc(
    invoice         IN integer,
    NewDate         IN varchar2,
    TransactionDate IN varchar2) AS

BEGIN

    EXECUTE IMMEDIATE 'TRUNCATE TABLE fix_the_date';

    INSERT INTO fix_the_date (Location,Invoice,NewDate,TransactionDate) 
    VALUES ('Corporate', invoice, TO_DATE(NewDate, 'mm/dd/yyyy'),
    TO_DATE(TransactionDate,'mm/dd/yyyy')); 
    COMMIT;

END;
/

...or if you really are passing dates:

CREATE OR REPLACE PROCEDURE my_proc(
    invoice         IN integer,
    NewDate         IN date,
    TransactionDate IN date) AS

BEGIN

    EXECUTE IMMEDIATE 'TRUNCATE TABLE fix_the_date';

    INSERT INTO fix_the_date (Location,Invoice,NewDate,TransactionDate) 
    VALUES ('Corporate', invoice, NewDate, TransactionDate); 
    COMMIT;

END;
/

(by FSUKXAZGerrat)

참조 문서

  1. plSQL Syntax For Writing Stored Procedure w/ 3 Variables (CC BY‑SA 2.5/3.0/4.0)

#oracle #coldfusion #plsql






관련 질문

Oracle SQL은 요일을 현재 날짜로 정렬합니다. (Oracle sql sort week days by current day)

3개의 변수가 있는 저장 프로시저 작성을 위한 plSQL 구문 (plSQL Syntax For Writing Stored Procedure w/ 3 Variables)

조건에 따라 SQL 쿼리의 UPDATE 문에서 값을 설정하기 위해 동적 열 이름을 설정하는 방법은 무엇입니까? (How to set dynamic column name to set value in UPDATE statement of SQL Query on the basis of condition?)

현재 회계 연도부터 sysdate까지 (Current Financial Year to sysdate)

카운트 최대 시퀀스 행 (Count Max Sequence row)

ORA-01008: 모든 변수가 바인딩되지 않았습니다(매개변수화된 쿼리가 있는 테이블 어댑터에서) (ORA-01008: not all variables bound (in table adapter with parameterized query))

ORA-00979: Oracle에 대한 GROUP BY 표현식이 아니지만 절 차이의 컨텍스트에서 MySQL에 대해서는 유효하지 않습니다. (ORA-00979: not a GROUP BY expression for Oracle but not valid for MySQL in context of clause difference)

#SQL #QUERY #ROWNUM #ORACLE (#SQL #QUERY #ROWNUM #ORACLE)

Oracle을 위한 IS숫자 대안 (ISNumeric Alternatives for Oracle)

다른 열의 열에서 누락된 문자 목록을 찾는 방법 (How to find list of missing characters in a column from another column)

18C 업그레이드의 일부로 OWA_UTIL.who_called_me에서 변경된 사항은 무엇입니까? (What are the changes done in OWA_UTIL.who_called_me as part of 18C upgrade?)

일부 값이 null인 경우 Oracle에서 날짜를 비교하시겠습니까? (Compare date in Oracle when some value is null?)







코멘트