0
データベース表にnvarchar2
という列があります。この列には、日付を表す文字列、たとえば '2016-12-05'が格納されています。oracleで無効な日付文字列を選択
有効な日付文字列を含まない行を検出する方法はありません。たとえば、'2012-19-34'
?
私はnull
に無効な日付文字列を設定し、ステートメントを持っていると思います。
データベース表にnvarchar2
という列があります。この列には、日付を表す文字列、たとえば '2016-12-05'が格納されています。oracleで無効な日付文字列を選択
有効な日付文字列を含まない行を検出する方法はありません。たとえば、'2012-19-34'
?
私はnull
に無効な日付文字列を設定し、ステートメントを持っていると思います。
日付に文字列を変換しようとする機能書くことができます。
create function check_date(p_date_str in nvarchar2) return number as
v_result NUMBER(1,0);
v_date DATE;
begin
v_result := 1;
begin
v_date := to_date(p_date_str, 'YYYY-MM-DD');
exception when others then
v_result := 0;
end;
return v_result;
end;
/
、その後、無効なレコードを見つけるためにそれを使用する: `date`代わりとして、それらを格納することにより
select * from my_table where check_date(column_with_date_as_str) = 0;
を'varchar'の? – Siyual
これまでに試したことを投稿してください。また、あなたの列にインデックスがありますか? 「ベスト」とは何を意味しますか?最も速く、最も読みやすい、...? – Aleksej
"最高"はこれまでのところ "任意"を意味します。 @Siyualに追加する – Ferenjito