回答編集履歴

3

SQL文にpg_typeof関数の記述を追記

2021/09/17 06:44

投稿

mayu-
mayu-

スコア335

test CHANGED
@@ -5,12 +5,6 @@
5
5
  > bigint型が期待しているnumeric型と一致しないと出ます。
6
6
 
7
7
  > 数値型→数値型での変換については記載がありませんでした。
8
-
9
-
10
-
11
- 値の上限値をDBAが制御できない関数に対する戻り値の型を
12
-
13
- ダイレクトにキャストしようとしていることが原因だと思います。
14
8
 
15
9
 
16
10
 
@@ -22,7 +16,7 @@
22
16
 
23
17
  ```SQL
24
18
 
25
- CREATE TABLE jaxxaxa
19
+ CREATE TABLE sample
26
20
 
27
21
  (
28
22
 
@@ -40,7 +34,7 @@
40
34
 
41
35
 
42
36
 
43
- INSERT INTO jaxxaxa
37
+ INSERT INTO sample
44
38
 
45
39
  ( cid, ymd, item, qua )
46
40
 
@@ -106,7 +100,7 @@
106
100
 
107
101
  )::varchar::numeric
108
102
 
109
- FROM jaxxaxa t
103
+ FROM sample t
110
104
 
111
105
  WHERE t.cid = ANY ( $1 )
112
106
 
@@ -126,7 +120,17 @@
126
120
 
127
121
 
128
122
 
123
+ SELECT ymd
124
+
125
+ , g_count
126
+
127
+ , d_count
128
+
129
+ , pg_typeof( g_count ) g_type
130
+
131
+ , pg_typeof( d_count ) d_type
132
+
129
- SELECT * FROM hoge( array[1,2] )
133
+ FROM hoge( array[1,2] )
130
134
 
131
135
  ORDER BY d_count ;
132
136
 
@@ -138,20 +142,20 @@
138
142
 
139
143
  ```result
140
144
 
141
- ymd | g_count | d_count
145
+ ymd | g_count | d_count | g_type | d_type
142
146
 
143
- ------------+---------+---------
147
+ ------------+---------+---------+---------+---------
144
148
 
145
- 2021-09-01 | 3 | 1
149
+ 2021-09-01 | 3 | 1 | numeric | numeric
146
150
 
147
- 2021-09-02 | 1 | 2
151
+ 2021-09-02 | 1 | 2 | numeric | numeric
148
152
 
149
- 2021-09-03 | 1 | 3
153
+ 2021-09-03 | 1 | 3 | numeric | numeric
150
154
 
151
- 2021-09-04 | 2 | 4
155
+ 2021-09-04 | 2 | 4 | numeric | numeric
152
156
 
153
- 2021-09-05 | 1 | 5
157
+ 2021-09-05 | 1 | 5 | numeric | numeric
154
158
 
155
- 2021-09-06 | 1 | 6
159
+ 2021-09-06 | 1 | 6 | numeric | numeric
156
160
 
157
161
  ```

2

2021/09/17 06:44

投稿

mayu-
mayu-

スコア335

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- 数値型(``) → 文字列型 → 数値型(``)
17
+ 数値型(`固定`) → 文字列型 → 数値型(`任意`)
18
18
 
19
19
  という方式のキャストでどうでしょうか。以下サンプルです。
20
20
 

1

一部文言を変更

2021/09/17 05:03

投稿

mayu-
mayu-

スコア335

test CHANGED
@@ -8,13 +8,9 @@
8
8
 
9
9
 
10
10
 
11
- 値の上限値をDBAが制御できない関数
11
+ 値の上限値をDBAが制御できない関数に対する戻り値の型を
12
12
 
13
- に対する戻り値の型を
14
-
15
- 同型かつ精度が低い型へダイレクトにキャストしようとしていることが
13
+ ダイレクトにキャストしようとしていることが原因だと思います。
16
-
17
- 原因だと思います。
18
14
 
19
15
 
20
16