質問編集履歴
1
エラーを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,36 @@
|
|
1
1
|
PL/SQL文を使用して、年齢を判定するファンクションを作成しています。
|
2
|
-
empテーブルの「生年月日」カラムをもとに、employeeの年齢を判定することを目指しています。
|
2
|
+
empテーブルの「生年月日」カラムをもとに、employeeの年齢を判定することを目指しています。下記のファンクションを作成することはできましたが、実行時にエラーが起こります。
|
3
|
+
|
4
|
+
```SQL
|
5
|
+
CREATE OR REPLACE FUNCTION AGE
|
6
|
+
(v_date in date
|
7
|
+
)
|
8
|
+
RETURN number
|
9
|
+
is
|
10
|
+
age number(20) ;
|
11
|
+
begin
|
12
|
+
SELECT
|
13
|
+
TRUNC(( TO_CHAR(SYSDATE, 'YYYYMMDD') - TO_CHAR(TO_DATE(v_date, 'YYYY/MM/DD'), 'YYYYMMDD'))/10000)
|
14
|
+
into age
|
15
|
+
from emp;
|
16
|
+
return age;
|
17
|
+
end;
|
18
|
+
/
|
19
|
+
|
20
|
+
```
|
21
|
+
```SQL
|
22
|
+
select AGE(生年月日)
|
23
|
+
from emp;
|
24
|
+
```
|
25
|
+
```error
|
26
|
+
: ORA-01830: 日付書式の変換で不要なデータが含まれています
|
27
|
+
ORA-06512: AGE, 行8
|
28
|
+
|
29
|
+
```
|
30
|
+
|
31
|
+
=======================
|
32
|
+
以下、SQLの実行モードの変更により解決しました。
|
33
|
+
|
3
34
|
|
4
35
|
下記のコードを実行しようとすると、下記のエラーメッセージが表示されます。該当するエラーメッセージを調べても原因がわかりませんでしたので、質問いたします。
|
5
36
|
|