(前のポストから移動) - これは繰り返しと見なされてもごめんなさい! こんにちは皆、 ちょうど日付計算と関数内の日付から減算でいくつかの問題があります。関数内のOracle sql-dateの減算
私はdate to_charから例えばto_charに変換する必要があるため、私が使用しているはずのデータ型と混同しています。戻り値の型をvarchar2またはdateのどちらにするかわからないのですか?ここで
はcar_idを受け取る関数であり、その車のためのテーブルに見えるが、車を引き出す日に到着し、格納した日付変数
で出発日と同じことを行います。
次に、両方の日付を_charに変換し、減算してvarchar2に返します。
私は関数を呼び出すと、パラメータとしてcar_idを入力し、 dbms出力のために返された結果をvarchar変数に格納します。例えば、 。ここ
v_result := get_duration('0001')
は関数である。
DROP FUNCTION get_duration;
CREATE FUNCTION get_duration (p_car_id number)
RETURN varchar2 is
v_arrive date;
v_depart date
v_duration varchar2(25); --not too sure about this variable choice
begin
select arrival, departure
into v_arrive, v_depart
from car_info
where car_id = p_car_id;
v_duration := to_char(v_depart, 'dd-mon-yyyy hh24:mi:ss') - to_char(v_arrive, 'dd-mon-yyyy hh24:mi:ss')
return v_duration;
END;
/
あなたが見ることができるように、私はその後、変数へのテーブルから開始時間と終了時間を置くしようとしてマイナス開始から終了日午前日付。
機能コンパイルが、警告と、私は、エラーが関数を呼び出すようになったとき:ポストがある場合get_durationが無効である
この上の任意の入力が大幅に受信されるだろう、
申し訳ありません比較的大きい!
に関して、
ダレン
'v_stop'と' v_start'が宣言されていないと、どのようにコンパイルされますか? – Ollie
@Ollie - '警告:コンパイルエラーで関数が作成されました.' * 8-)。前回のQでは、 'show errors'の出力を提供することを提案しました。 –