2016-06-20 6 views
1

手順に日付を('19-JUN-1997')として渡して、日付表に日付を挿入したいとします。誰も私にそれを行う方法の例を与えることができますか? TO_DATE(my_var)に変数を入れて日付を挿入しようとすると何か問題があるようです。プロシージャ付きPL/SQL挿入日付

SET SERVEROUTPUT ON 
BEGIN 
p_date('14-MAR-2017'); 
END; 

CREATE OR REPLACE PROCEDURE p_date(
v_date IN Dates.date1%type) IS 
BEGIN 
INSERT INTO Dates 
(date1) 
VALUES 
(TO_DATE(v_date)); 
END; 
+0

'dates'テーブルの説明を提供できますか?ところで、DATEデータ型が必要なプロシージャに文字パラメータを渡しているようです。 –

答えて

2

日付(例えば、YYYY-MM-DD)の形式を知っている場合は、実行する最も安全な方法は、このようにのようなあなたのINSERT文を作るです:

INSERT INTO Dates (date1) 
VALUES (TO_DATE(v_date, 'DD-MON-YYYY'); 

例を使用するには、文字列の日付形式がデータベースのデフォルトの日付形式である必要があります。デフォルトのフォーマットが変更され、あなたがそれに依存している場合

SELECT value 
FROM nls_session_parameters 
WHERE parameter = 'NLS_DATE_FORMAT' 

しかし、あなたのコードが解除されます:あなたはこれを使用して、データベースのデフォルトの形式の値を取得することができます。また、あなたが期待している日付形式が何であるかをコードの読者に伝えます。