@things-factory/integration-base 6.1.127 → 6.1.129
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/helps/integration/task/oracle-procedure.ja.md +139 -0
- package/helps/integration/task/oracle-procedure.ko.md +40 -29
- package/helps/integration/task/oracle-procedure.md +54 -56
- package/helps/integration/task/oracle-procedure.ms.md +48 -48
- package/helps/integration/task/oracle-procedure.zh.md +78 -80
- package/package.json +8 -8
@@ -0,0 +1,139 @@
|
|
1
|
+
# Oracle 存储过程任务
|
2
|
+
|
3
|
+
これは Oracle データベースに保存されているプロシージャを呼び出すタスクで、個々のデータ型に基づいてデータのリストまたは特定のデータ型の値を返します。
|
4
|
+
|
5
|
+
## パラメータ
|
6
|
+
|
7
|
+
### プロシージャコード
|
8
|
+
|
9
|
+
- プロシージャコードは、*プロシージャ名*と*パラメータ*に基づいて自動生成されるコードで、ユーザーは別途入力する必要はありません。
|
10
|
+
- プロシージャ名が*mcs.myproc*で、パラメータが*id*と*out_name*の場合、次のように表現されます:
|
11
|
+
```text
|
12
|
+
mcs.myproc(:id, :out_name);
|
13
|
+
```
|
14
|
+
|
15
|
+
### プロシージャ名
|
16
|
+
|
17
|
+
- プロシージャの名前を指定します。
|
18
|
+
- プロシージャがパッケージまたはユーザー名で区別する必要がある場合、それらを区別するために'.'を使用します。
|
19
|
+
- 例:
|
20
|
+
```text
|
21
|
+
mcs.myproc
|
22
|
+
```
|
23
|
+
|
24
|
+
### パラメータ
|
25
|
+
|
26
|
+
- パラメータには以下の要素が含まれています:
|
27
|
+
- パラメータ名
|
28
|
+
- 入力/出力仕様:IN、INOUT、OUT
|
29
|
+
- パラメータの型:String、Number、Date、Cursor
|
30
|
+
- 値:変数が入力の場合、その入力の値を指定します。
|
31
|
+
- 最大サイズ:変数の型が String または Buffer の場合、変数の最大サイズを指定します。
|
32
|
+
|
33
|
+
#### パラメータ名
|
34
|
+
|
35
|
+
パラメータ名はプロシージャで使用されるパラメータの名前を指定します。前述の例では、'id'と'out_name'がパラメータ名です。
|
36
|
+
|
37
|
+
### 入力/出力仕様
|
38
|
+
|
39
|
+
変数が入力(IN)または出力(OUT)かを指定します。
|
40
|
+
|
41
|
+
### パラメータの型
|
42
|
+
|
43
|
+
パラメータの型を指定します。型はプロシージャを作成する際に指定されている名前と完全に一致している必要があります。
|
44
|
+
|
45
|
+
プロシージャが次のように実装されている場合:
|
46
|
+
|
47
|
+
```sql
|
48
|
+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE myproc (in_id IN VARCHAR2, out_name OUT VARCHAR2) AS
|
49
|
+
BEGIN
|
50
|
+
SELECT name INTO out_name FROM MCS.FMB_USERS WHERE id = in_id;
|
51
|
+
END;
|
52
|
+
```
|
53
|
+
|
54
|
+
最初のパラメータと 2 番目のパラメータはどちらも VARCHAR2 として指定されています。このようなプロシ
|
55
|
+
|
56
|
+
ージャを呼び出す場合、両方のパラメータに対しても String をパラメータの型として指定し、出力についても最大サイズを指定する必要があります。
|
57
|
+
|
58
|
+
以下は、パラメータの構成の例です:
|
59
|
+
|
60
|
+

|
61
|
+
|
62
|
+
### アクセッサ
|
63
|
+
|
64
|
+
設定は[JSONATA ドキュメント](http://docs.jsonata.org/overview.html)に従います。
|
65
|
+
|
66
|
+
'アクセッサ'が指定されている場合、このアクセッサで構築された値がプロシージャのパラメータとして使用されます。
|
67
|
+
|
68
|
+
以下の '値' 設定は '定数' の場合、アクセッサの設定は '変数' と考えることができます。
|
69
|
+
|
70
|
+
アクセッサの設定は以下の '値' 設定より優先されます。言い換えれば、 '値' が設定されている場合、それはプロシージャのパラメータ値として優先されます。これは、アクセッサが設定されている場合、設定された '値' は通常、テストの目的で使用される値として理解されるためです。
|
71
|
+
|
72
|
+
### 値
|
73
|
+
|
74
|
+
パラメータが入力(IN)の場合、その値を指定します。
|
75
|
+
このフィールドに直接「定数」値を入力します。
|
76
|
+
|
77
|
+
上記の例では、「id」の入力値を「ID」と指定した場合、ID タスクの入力値として設定されます。
|
78
|
+
|
79
|
+
この値は、上記の 'アクセッサ' の設定より優先されます。これは、アクセッサが設定されている場合、設定された '値' は通常、テストの目的で使用される値として理解されるためです。
|
80
|
+
|
81
|
+
### 最大サイズ
|
82
|
+
|
83
|
+
パラメータの型が String または Buffer の場合、最大サイズを指定します。他の型の場合は値を指定せずに無視します。
|
84
|
+
|
85
|
+
## タスク結果
|
86
|
+
|
87
|
+
プロシージャ呼び出しの結果はオブジェクトの形式で返され、出力として指定されたパラメータ名が値を返すキーになります。
|
88
|
+
|
89
|
+
たとえば、上記で紹介したタスクの場合、次の結果値を返します:
|
90
|
+
|
91
|
+
```javascript
|
92
|
+
{
|
93
|
+
out_name: 'Admin'
|
94
|
+
}
|
95
|
+
```
|
96
|
+
|
97
|
+
## 別の使用例(カーソル)
|
98
|
+
|
99
|
+
### プロシージャ作成の例
|
100
|
+
|
101
|
+
```sql
|
102
|
+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
103
|
+
BEGIN
|
104
|
+
BEGIN
|
105
|
+
OPEN out_cursor FOR
|
106
|
+
SELECT * FROM FARMWEATHER WHERE rownum <= 1000;
|
107
|
+
END;
|
108
|
+
END PROCEDURE1;
|
109
|
+
```
|
110
|
+
|
111
|
+
### プロシージャ呼び出しの例
|
112
|
+
|
113
|
+

|
114
|
+
|
115
|
+
### プロシージャタスク呼び出しの結果
|
116
|
+
|
117
|
+
```javascript
|
118
|
+
{
|
119
|
+
"out_cursor": [
|
120
|
+
{
|
121
|
+
"FARMDATE": "2006-01-07T15:00:00.000Z",
|
122
|
+
"MAXT": 29.5,
|
123
|
+
"MINT": 21.8,
|
124
|
+
"WINDSPEED": 1.6,
|
125
|
+
"FARMHUM": 70.2,
|
126
|
+
"PRECIPITATION": 0
|
127
|
+
},
|
128
|
+
{
|
129
|
+
"FARMDATE": "2006-01-08T15:00:00.000Z",
|
130
|
+
"MAXT": 30.1,
|
131
|
+
"MINT": 21,
|
132
|
+
"WINDSPEED": 1.6,
|
133
|
+
"FARMHUM": 67.4,
|
134
|
+
"PRECIPITATION": 0
|
135
|
+
},
|
136
|
+
..
|
137
|
+
]
|
138
|
+
}
|
139
|
+
```
|
@@ -1,40 +1,45 @@
|
|
1
1
|
# Oracle Procedure Task
|
2
2
|
|
3
|
-
Oracle 데이터베이스에 저장되어 있는 프로시저를 호출하는 태스크이며,
|
3
|
+
Oracle 데이터베이스에 저장되어 있는 프로시저를 호출하는 태스크이며,
|
4
4
|
개별 데이터 타입에 따라서 데이터의 리스트 혹은 특정 데이터 타입의 값을 반환한다.
|
5
5
|
|
6
6
|
## Parameters
|
7
7
|
|
8
8
|
### 프로시저 코드
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
|
10
|
+
- 프로시저 코드는 *프로시저 이름*과 *파라미터*에 의해서 자동으로 생성되는 코드로서, 별도로 사용자가 입력할 필요는 없다.
|
11
|
+
- 만약, 프로시저의 이름이 *mcs.myproc*이고, 파라미터가 *id*와 *out_name*으로 구성된다면, 다음과 같이 표현된다.
|
12
|
+
```text
|
13
|
+
mcs.myproc(:id, :out_name);
|
14
|
+
```
|
14
15
|
|
15
16
|
### 프로시저 이름
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
|
18
|
+
- 프로시저의 이름을 지정한다.
|
19
|
+
- 프로시저가 패키지나 사용자 이름등으로 구분이 필요할 경우 '.'을 통해서 구분한다.
|
20
|
+
- 사용 예.
|
21
|
+
```text
|
22
|
+
mcs.myproc
|
23
|
+
```
|
22
24
|
|
23
25
|
### 파라미터
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
26
|
+
|
27
|
+
- 파라미터는 다음과 같은 요소로 구성되어 있다.
|
28
|
+
- 파라미터 이름
|
29
|
+
- 입출력 지정: IN, INOUT, OUT
|
30
|
+
- 파라미터 타입: String, Number, Date, Cursor
|
31
|
+
- 값: 해당 변수가 입력일 경우, 해당 입력에 대한 값
|
32
|
+
- 최대크기: 해당 변수타입이 String이나 Buffer일 경우, 변수의 최대 크기를 지정.
|
30
33
|
|
31
34
|
#### 파라미터 이름
|
32
35
|
|
33
36
|
파라미터 이름은 프로시저 작성에 사용된 파라미터의 이름을 지정한다.
|
34
37
|
앞의 예의 경우,
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
+
|
39
|
+
```sql
|
40
|
+
mcs.myproc(:id, :out_name);
|
41
|
+
```
|
42
|
+
|
38
43
|
id와 out_name이 각각 파라미터 이름이다.
|
39
44
|
|
40
45
|
### 입출력 지정
|
@@ -54,28 +59,35 @@ BEGIN
|
|
54
59
|
END;
|
55
60
|
```
|
56
61
|
|
57
|
-
첫번째 파라미터와 두번째 파라미터 모두 VARCHAR2로 지정되어 있으며,
|
62
|
+
첫번째 파라미터와 두번째 파라미터 모두 VARCHAR2로 지정되어 있으며,
|
58
63
|
|
59
|
-
이러한 프로시저를 호출해야 할 경우 파라미터 타입은 모두 String을 지정해야 하고,
|
64
|
+
이러한 프로시저를 호출해야 할 경우 파라미터 타입은 모두 String을 지정해야 하고,
|
60
65
|
출력의 경우, 최대 크기까지 지정해야 한다.
|
61
66
|
|
62
67
|
호출 지정 예는 다음과 같다.
|
63
68
|
|
64
69
|

|
65
70
|
|
66
|
-
|
67
71
|
### 접근자 [accessor](../concept/data-accessor.md)
|
68
72
|
|
69
73
|
설정 방법은 [JSONATA 도큐먼트](http://docs.jsonata.org/overview.html)를 따른다.
|
70
74
|
|
75
|
+
'접근자'가 지정되면, 해당 접근자로 조성된 값이 프로시져의 파라미터로 사용된다.
|
76
|
+
|
77
|
+
아래 '값' 설정이 '상수'라면, 접근자 설정은 '변수'라고 할 수 있다.
|
78
|
+
|
79
|
+
접근자 설정은 다음의 '값' 설정에 차선순위이다. 즉, 만약에 '값'이 설정되어있으면, '값' 설정이 우선하여 프로시져 파라미터 값이 된다.
|
80
|
+
그 이유는 접근자가 설정되어 있는 상태에서 설정된 '값'은 주로 사용되는 용도라기보다는 '테스트'용 값으로 이해되기 때문이다.
|
71
81
|
|
72
82
|
### 값
|
73
83
|
|
74
|
-
파라미터가 입력(IN)일 경우, 해당 값을 지정한다.
|
75
|
-
해당 값에 바로 상수 값을
|
84
|
+
파라미터가 입력(IN)일 경우, 해당 값을 지정한다.
|
85
|
+
해당 값에 바로 "상수" 값을 입력한다.
|
76
86
|
|
77
87
|
위의 예어서 id의 입력 값을 ID라고 지정되어 있다면, ID 태스크에서 반환되는 값을 입력 값으로 지정한다.
|
78
88
|
|
89
|
+
이 값은 위 '접근자' 설정에 우선하여 사용된다.
|
90
|
+
그 이유는 접근자가 설정되어 있는 상태에서 설정된 '값'은 주로 사용되는 용도라기보다는 '테스트'용 값으로 이해되기 때문이다.
|
79
91
|
|
80
92
|
### 최대 크기
|
81
93
|
|
@@ -93,13 +105,12 @@ END;
|
|
93
105
|
}
|
94
106
|
```
|
95
107
|
|
96
|
-
|
97
108
|
## 다른 사용 예(커서)
|
98
109
|
|
99
110
|
### 프로시저 작성 예
|
100
111
|
|
101
112
|
```sql
|
102
|
-
CREATE OR REPLACDE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
113
|
+
CREATE OR REPLACDE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
103
114
|
BEGIN
|
104
115
|
BEGIN
|
105
116
|
OPEN out_cursor FOR
|
@@ -136,4 +147,4 @@ END PROCEDURE1;
|
|
136
147
|
..
|
137
148
|
]
|
138
149
|
}
|
139
|
-
```
|
150
|
+
```
|
@@ -1,91 +1,90 @@
|
|
1
1
|
# Oracle Procedure Task
|
2
2
|
|
3
|
-
|
4
|
-
It returns a list of data or a value of a specific data type, depending on the individual data type.
|
3
|
+
This is a task for calling procedures stored in the Oracle database, returning either lists of data or specific data types based on individual data types.
|
5
4
|
|
6
5
|
## Parameters
|
7
6
|
|
8
7
|
### Procedure Code
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
|
9
|
+
- The procedure code is generated automatically based on the _procedure name_ and _parameters_, and there is no need for users to input it separately.
|
10
|
+
- If the procedure name is _mcs.myproc_ and it has parameters _id_ and _out_name_, it is expressed as follows:
|
11
|
+
```text
|
12
|
+
mcs.myproc(:id, :out_name);
|
13
|
+
```
|
14
14
|
|
15
15
|
### Procedure Name
|
16
|
-
- Specifies the name of the procedure.
|
17
|
-
- If the procedure needs to be separated by a package or user name, use a '.' to separate them.
|
18
|
-
- Example.
|
19
|
-
```text
|
20
|
-
mcs.myproc
|
21
|
-
```text mcs.myproc
|
22
16
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- Value: If the variable is an input, the value for that input.
|
29
|
-
- MaxSize: If the variable is of type String or Buffer, the maximum size of the variable.
|
30
|
-
|
31
|
-
#### Parameter names
|
32
|
-
|
33
|
-
The parameter name specifies the name of the parameter used in the procedure.
|
34
|
-
For the previous example,
|
35
|
-
```sql
|
36
|
-
mcs.myproc(:id, :out_name);
|
17
|
+
- Specify the name of the procedure.
|
18
|
+
- If the procedure needs to be distinguished by a package or user name, use '.' to separate them.
|
19
|
+
- Example:
|
20
|
+
```text
|
21
|
+
mcs.myproc
|
37
22
|
```
|
38
|
-
id and out_name are the parameter names.
|
39
23
|
|
40
|
-
###
|
24
|
+
### Parameters
|
41
25
|
|
42
|
-
|
26
|
+
- Parameters consist of the following elements:
|
27
|
+
- Parameter name
|
28
|
+
- Input/Output specification: IN, INOUT, OUT
|
29
|
+
- Parameter type: String, Number, Date, Cursor
|
30
|
+
- Value: If the variable is an input, specify the value for that input.
|
31
|
+
- Maximum size: If the variable type is String or Buffer, specify the maximum size of the variable.
|
43
32
|
|
44
|
-
|
33
|
+
#### Parameter Name
|
45
34
|
|
46
|
-
|
35
|
+
The parameter name specifies the name of the parameter used in the procedure. In the example above, 'id' and 'out_name' are the parameter names.
|
47
36
|
|
48
|
-
|
37
|
+
### Input/Output Specification
|
38
|
+
|
39
|
+
Specify whether the variable is an input (IN) or output (OUT).
|
40
|
+
|
41
|
+
### Parameter Type
|
42
|
+
|
43
|
+
Specify the parameter type. The type should be specified exactly as it is named when creating the procedure.
|
44
|
+
|
45
|
+
If the procedure is implemented as follows:
|
49
46
|
|
50
47
|
```sql
|
51
48
|
CREATE OR REPLACE NONEDITIONABLE PROCEDURE myproc (in_id IN VARCHAR2, out_name OUT VARCHAR2) AS
|
52
49
|
BEGIN
|
53
|
-
SELECT name INTO out_name FROM MCS.FMB_USERS WHERE id = in_id
|
50
|
+
SELECT name INTO out_name FROM MCS.FMB_USERS WHERE id = in_id;
|
54
51
|
END;
|
55
52
|
```
|
56
53
|
|
57
|
-
|
54
|
+
Both the first and second parameters are specified as VARCHAR2. When calling such a procedure, you must specify String as the parameter type for both, and for output, you must also specify the maximum size.
|
58
55
|
|
59
|
-
|
60
|
-
For the output, the maximum size should be specified.
|
56
|
+
Here's an example of parameter configuration:
|
61
57
|
|
62
|
-
|
58
|
+

|
63
59
|
|
64
|
-
|
60
|
+
### Accessor
|
65
61
|
|
62
|
+
The configuration follows the [JSONATA documentation](http://docs.jsonata.org/overview.html).
|
66
63
|
|
67
|
-
|
64
|
+
When an 'accessor' is specified, the value constructed with this accessor is used as a parameter for the procedure.
|
68
65
|
|
69
|
-
|
66
|
+
If the 'value' setting below is a 'constant,' then the accessor setting can be considered as a 'variable.'
|
70
67
|
|
68
|
+
Accessor configuration takes precedence over the following 'value' setting. In other words, if the 'value' is set, it takes priority as the parameter value for the procedure. This is because when an accessor is set, the configured 'value' is typically understood as a value used for testing purposes rather than for primary use.
|
71
69
|
|
72
70
|
### Value
|
73
71
|
|
74
|
-
If the parameter is an input (IN), specify its value.
|
75
|
-
|
72
|
+
If the parameter is an input (IN), specify its value.
|
73
|
+
Enter a "constant" value directly into this field.
|
76
74
|
|
77
|
-
In the example above, if the input value
|
75
|
+
In the example above, if the input value for 'id' is specified as 'ID,' then it is set as the input value for the ID task.
|
78
76
|
|
77
|
+
This value takes precedence over the 'accessor' configuration above. This is because when an accessor is set, the configured 'value' is typically understood as a value used for testing purposes rather than for primary use.
|
79
78
|
|
80
|
-
### Maximum
|
79
|
+
### Maximum Size
|
81
80
|
|
82
|
-
If the parameter type is String or Buffer, specify the maximum size.
|
81
|
+
If the parameter type is String or Buffer, specify the maximum size. Ignore this for other types.
|
83
82
|
|
84
83
|
## Task Result
|
85
84
|
|
86
|
-
The result of the procedure call is returned in the form of an
|
85
|
+
The result of the procedure call is returned in the form of an object, with the parameter specified as output becoming the key for returning the value.
|
87
86
|
|
88
|
-
For example, the task introduced above returns the following result value
|
87
|
+
For example, in the case of the task introduced above, it returns the following result value:
|
89
88
|
|
90
89
|
```javascript
|
91
90
|
{
|
@@ -93,13 +92,12 @@ For example, the task introduced above returns the following result value.
|
|
93
92
|
}
|
94
93
|
```
|
95
94
|
|
95
|
+
## Another Use Case (Cursor)
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
### Example of writing a procedure
|
97
|
+
### Procedure Creation Example
|
100
98
|
|
101
99
|
```sql
|
102
|
-
CREATE OR REPLACE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
100
|
+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
103
101
|
BEGIN
|
104
102
|
BEGIN
|
105
103
|
OPEN out_cursor FOR
|
@@ -108,11 +106,11 @@ BEGIN
|
|
108
106
|
END PROCEDURE1;
|
109
107
|
```
|
110
108
|
|
111
|
-
###
|
109
|
+
### Procedure Call Example
|
112
110
|
|
113
|
-

|
114
112
|
|
115
|
-
### Procedure
|
113
|
+
### Procedure Task Call Result
|
116
114
|
|
117
115
|
```javascript
|
118
116
|
{
|
@@ -133,7 +131,7 @@ END PROCEDURE1;
|
|
133
131
|
"FARMHUM": 67.4,
|
134
132
|
"PRECIPITATION": 0
|
135
133
|
},
|
136
|
-
|
134
|
+
..
|
137
135
|
]
|
138
136
|
}
|
139
137
|
```
|
@@ -1,91 +1,92 @@
|
|
1
1
|
# Tugas Prosedur Oracle
|
2
2
|
|
3
|
-
|
4
|
-
dan mengembalikan senarai data atau nilai jenis data tertentu bergantung pada jenis data individu.
|
3
|
+
Ini adalah tugas untuk memanggil prosedur yang disimpan di database Oracle, mengembalikan daftar data atau tipe data tertentu berdasarkan tipe data individu.
|
5
4
|
|
6
5
|
## Parameter
|
7
6
|
|
8
|
-
###
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
### Kode Prosedur
|
8
|
+
|
9
|
+
- Kode prosedur dibuat secara otomatis berdasarkan _nama prosedur_ dan _parameter_, dan pengguna tidak perlu memasukkannya secara terpisah.
|
10
|
+
- Jika nama prosedur adalah _mcs.myproc_ dan memiliki parameter _id_ dan _out_name_, maka diungkapkan seperti berikut:
|
11
|
+
```text
|
12
|
+
mcs.myproc(:id, :out_name);
|
13
|
+
```
|
14
14
|
|
15
15
|
### Nama Prosedur
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
|
17
|
+
- Tentukan nama prosedur.
|
18
|
+
- Jika prosedur perlu dibedakan dengan nama paket atau pengguna, gunakan '.' untuk memisahkan mereka.
|
19
|
+
- Contoh:
|
20
|
+
```text
|
21
|
+
mcs.myproc
|
22
|
+
```
|
22
23
|
|
23
24
|
### Parameter
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
|
26
|
+
- Parameter terdiri dari elemen-elemen berikut:
|
27
|
+
- Nama parameter
|
28
|
+
- Spesifikasi Masukan/Keluaran: IN, INOUT, OUT
|
29
|
+
- Tipe parameter: String, Number, Date, Cursor
|
30
|
+
- Nilai: Jika variabel adalah masukan, tentukan nilai untuk masukan tersebut.
|
31
|
+
- Ukuran maksimum: Jika tipe variabel adalah String atau Buffer, tentukan ukuran maksimum variabel tersebut.
|
30
32
|
|
31
33
|
#### Nama Parameter
|
32
34
|
|
33
|
-
Nama parameter menentukan nama parameter yang digunakan
|
34
|
-
Dalam contoh di atas,
|
35
|
-
```sql
|
36
|
-
mcs.myproc(:id, :out_name);
|
37
|
-
```
|
38
|
-
id dan out_name adalah nama parameter masing-masing.
|
35
|
+
Nama parameter menentukan nama parameter yang digunakan dalam prosedur. Dalam contoh di atas, 'id' dan 'out_name' adalah nama parameter.
|
39
36
|
|
40
|
-
###
|
37
|
+
### Spesifikasi Masukan/Keluaran
|
41
38
|
|
42
|
-
Tentukan
|
39
|
+
Tentukan apakah variabel adalah masukan (IN) atau keluaran (OUT).
|
43
40
|
|
44
|
-
###
|
41
|
+
### Tipe Parameter
|
45
42
|
|
46
|
-
Tentukan
|
43
|
+
Tentukan tipe parameter. Tipe harus ditentukan dengan tepat seperti yang dinamai saat membuat prosedur.
|
47
44
|
|
48
|
-
Jika prosedur diimplementasikan seperti berikut
|
45
|
+
Jika prosedur diimplementasikan seperti berikut:
|
49
46
|
|
50
47
|
```sql
|
51
48
|
CREATE OR REPLACE NONEDITIONABLE PROCEDURE myproc (in_id IN VARCHAR2, out_name OUT VARCHAR2) AS
|
52
49
|
BEGIN
|
53
|
-
SELECT name INTO out_name FROM MCS.FMB_USERS WHERE id = in_id
|
50
|
+
SELECT name INTO out_name FROM MCS.FMB_USERS WHERE id = in_id;
|
54
51
|
END;
|
55
52
|
```
|
56
53
|
|
57
|
-
|
54
|
+
Baik parameter pertama maupun kedua ditentukan sebagai VARCHAR2. Ketika memanggil prosedur
|
58
55
|
|
59
|
-
|
60
|
-
dan dalam kes output, anda juga harus menentukan saiz maksimum.
|
56
|
+
seperti itu, Anda harus menentukan String sebagai tipe parameter untuk keduanya, dan untuk keluaran, Anda juga harus menentukan ukuran maksimum.
|
61
57
|
|
62
|
-
|
58
|
+
Berikut adalah contoh konfigurasi parameter:
|
63
59
|
|
64
60
|

|
65
61
|
|
62
|
+
### Aksesori
|
66
63
|
|
67
|
-
|
64
|
+
Konfigurasi mengikuti [dokumentasi JSONATA](http://docs.jsonata.org/overview.html).
|
68
65
|
|
69
|
-
|
66
|
+
Ketika 'aksesori' ditentukan, nilai yang dibangun dengan aksesori ini digunakan sebagai parameter untuk prosedur.
|
70
67
|
|
68
|
+
Jika pengaturan 'nilai' di bawah adalah 'konstan', maka pengaturan aksesori dapat dianggap sebagai 'variabel'.
|
69
|
+
|
70
|
+
Konfigurasi aksesori memiliki prioritas lebih tinggi daripada pengaturan 'nilai' berikut. Dalam kata lain, jika 'nilai' diatur, itu akan menjadi prioritas sebagai nilai parameter untuk prosedur. Hal ini karena ketika aksesori diatur, 'nilai' yang dikonfigurasi biasanya dianggap sebagai nilai yang digunakan untuk tujuan pengujian daripada penggunaan utama.
|
71
71
|
|
72
72
|
### Nilai
|
73
73
|
|
74
|
-
Jika parameter adalah
|
75
|
-
|
74
|
+
Jika parameter adalah masukan (IN), tentukan nilainya.
|
75
|
+
Masukkan nilai "konstan" langsung ke dalam bidang ini.
|
76
76
|
|
77
|
-
Dalam contoh di atas, jika nilai
|
77
|
+
Dalam contoh di atas, jika nilai masukan untuk 'id' ditentukan sebagai 'ID', maka itu diatur sebagai nilai masukan untuk tugas ID.
|
78
78
|
|
79
|
+
Nilai ini memiliki prioritas lebih tinggi daripada konfigurasi 'aksesori' di atas. Hal ini karena ketika aksesori diatur, 'nilai' yang dikonfigurasi biasanya dianggap sebagai nilai yang digunakan untuk tujuan pengujian daripada penggunaan utama.
|
79
80
|
|
80
|
-
###
|
81
|
+
### Ukuran Maksimum
|
81
82
|
|
82
|
-
Jika
|
83
|
+
Jika tipe parameter adalah String atau Buffer, tentukan ukuran maksimum. Abaikan ini untuk jenis lain.
|
83
84
|
|
84
85
|
## Hasil Tugas
|
85
86
|
|
86
|
-
Hasil panggilan prosedur dikembalikan dalam bentuk
|
87
|
+
Hasil panggilan prosedur dikembalikan dalam bentuk objek, dengan parameter yang ditentukan sebagai keluaran menjadi kunci untuk mengembalikan nilai.
|
87
88
|
|
88
|
-
|
89
|
+
Misalnya, dalam kasus tugas yang diperkenalkan di atas, itu mengembalikan nilai hasil berikut:
|
89
90
|
|
90
91
|
```javascript
|
91
92
|
{
|
@@ -93,13 +94,12 @@ Jika tugas yang diperkenalkan di atas mengembalikan hasil seperti berikut.
|
|
93
94
|
}
|
94
95
|
```
|
95
96
|
|
96
|
-
|
97
|
-
## Contoh Penggunaan Lain (Kursor)
|
97
|
+
## Contoh Penggunaan Lainnya (Kursor)
|
98
98
|
|
99
99
|
### Contoh Pembuatan Prosedur
|
100
100
|
|
101
101
|
```sql
|
102
|
-
CREATE OR
|
102
|
+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
103
103
|
BEGIN
|
104
104
|
BEGIN
|
105
105
|
OPEN out_cursor FOR
|
@@ -1,141 +1,139 @@
|
|
1
1
|
# Oracle 存储过程任务
|
2
2
|
|
3
|
-
|
4
|
-
它根据数据类型返回数据列表或特定数据类型的值。
|
3
|
+
这是用于调用存储在 Oracle 数据库中的存储过程的任务,根据不同的数据类型返回数据列表或特定数据类型的值。
|
5
4
|
|
6
|
-
|
5
|
+
## 参数
|
6
|
+
|
7
|
+
### 存储过程代码
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
```
|
9
|
+
- 存储过程代码是根据*存储过程名称*和*参数*自动生成的代码,用户无需单独输入。
|
10
|
+
- 如果存储过程名称是*mcs.myproc*,并且具有参数*id*和*out_name*,则表示如下:
|
11
|
+
```text
|
12
|
+
mcs.myproc(:id, :out_name);
|
13
|
+
```
|
14
14
|
|
15
15
|
### 存储过程名称
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
|
17
|
+
- 指定存储过程的名称。
|
18
|
+
- 如果需要按包或用户名进行区分,使用'.'来分隔它们。
|
19
|
+
- 例子:
|
20
|
+
```text
|
21
|
+
mcs.myproc
|
22
|
+
```
|
22
23
|
|
23
24
|
### 参数
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
|
26
|
+
- 参数包括以下元素:
|
27
|
+
- 参数名称
|
28
|
+
- 输入/输出规范:IN、INOUT、OUT
|
29
|
+
- 参数类型:String、Number、Date、Cursor
|
30
|
+
- 值:如果变量是输入,则指定该输入的值。
|
31
|
+
- 最大大小:如果变量类型为 String 或 Buffer,则指定变量的最大大小。
|
30
32
|
|
31
33
|
#### 参数名称
|
32
34
|
|
33
|
-
|
34
|
-
例如
|
35
|
-
``sql
|
36
|
-
mcs.myproc(:id, :out_name);
|
37
|
-
```
|
38
|
-
id 和 out_name 是参数名。
|
35
|
+
参数名称指定存储过程中使用的参数的名称。在上面的示例中,“id”和“out_name”是参数名称。
|
39
36
|
|
40
|
-
###
|
37
|
+
### 输入/输出规范
|
41
38
|
|
42
39
|
指定变量是输入(IN)还是输出(OUT)。
|
43
40
|
|
44
41
|
### 参数类型
|
45
42
|
|
46
|
-
|
43
|
+
指定参数类型。在创建存储过程时,类型应该与创建存储过程时指定的名称完全一致。
|
47
44
|
|
48
|
-
|
45
|
+
如果存储过程如下实现:
|
49
46
|
|
50
|
-
|
47
|
+
```sql
|
51
48
|
CREATE OR REPLACE NONEDITIONABLE PROCEDURE myproc (in_id IN VARCHAR2, out_name OUT VARCHAR2) AS
|
52
|
-
|
53
|
-
SELECT name INTO out_name FROM
|
54
|
-
|
49
|
+
BEGIN
|
50
|
+
SELECT name INTO out_name FROM
|
51
|
+
|
52
|
+
MCS.FMB_USERS WHERE id = in_id;
|
53
|
+
END;
|
55
54
|
```
|
56
55
|
|
57
|
-
|
56
|
+
第一个和第二个参数都指定为 VARCHAR2。当调用这样的存储过程时,必须为两者都指定 String 作为参数类型,并且对于输出,还必须指定最大大小。
|
58
57
|
|
59
|
-
|
60
|
-
对于输出,必须指定最大大小。
|
58
|
+
以下是参数配置示例:
|
61
59
|
|
62
|
-
|
60
|
+

|
63
61
|
|
64
|
-
|
62
|
+
### 访问器
|
65
63
|
|
64
|
+
配置遵循[JSONATA 文档](http://docs.jsonata.org/overview.html)。
|
66
65
|
|
67
|
-
|
66
|
+
如果指定了“访问器”,则使用此访问器构建的值将用作存储过程的参数。
|
68
67
|
|
69
|
-
|
68
|
+
如果下面的“值”设置是“常量”,那么可以将访问器设置视为“变量”。
|
70
69
|
|
70
|
+
访问器配置优先于下面的“值”设置。换句话说,如果设置了“值”,则它将作为存储过程的参数值优先考虑。这是因为当设置访问器时,通常将配置的“值”理解为用于测试目的的值,而不是主要用途的值。
|
71
71
|
|
72
72
|
### 值
|
73
73
|
|
74
74
|
如果参数是输入(IN),请指定其值。
|
75
|
-
|
75
|
+
直接在此字段中输入“常量”值。
|
76
76
|
|
77
|
-
|
77
|
+
在上面的示例中,如果指定“id”的输入值为“ID”,则它将设置为 ID 任务的输入值。
|
78
78
|
|
79
|
+
此值优先于上面的“访问器”配置。这是因为当设置访问器时,通常将配置的“值”理解为用于测试目的的值,而不是主要用途的值。
|
79
80
|
|
80
81
|
### 最大大小
|
81
82
|
|
82
|
-
|
83
|
+
如果参数类型为 String 或 Buffer,请指定最大大小。对于其他类型,请忽略此设置。
|
83
84
|
|
84
|
-
|
85
|
+
## 任务结果
|
85
86
|
|
86
|
-
|
87
|
+
过程调用的结果以对象形式返回,其中指定为输出的参数成为返回值的键。
|
87
88
|
|
88
|
-
|
89
|
+
例如,在上面介绍的任务的情况下,它返回以下结果值:
|
89
90
|
|
90
91
|
```javascript
|
91
|
-
|
92
|
-
out_name: 'Admin
|
92
|
+
{
|
93
|
+
out_name: 'Admin'
|
93
94
|
}
|
94
95
|
```
|
95
96
|
|
97
|
+
## 另一个用例(游标)
|
96
98
|
|
97
|
-
###
|
99
|
+
### 存储过程创建示例
|
98
100
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
结束;
|
108
|
-
结束过程1;
|
101
|
+
```sql
|
102
|
+
CREATE OR REPLACE NONEDITIONABLE PROCEDURE PROCEDURE1(out_cursor OUT SYS_REFCURSOR) AS
|
103
|
+
BEGIN
|
104
|
+
BEGIN
|
105
|
+
OPEN out_cursor FOR
|
106
|
+
SELECT * FROM FARMWEATHER WHERE rownum <= 1000;
|
107
|
+
END;
|
108
|
+
END PROCEDURE1;
|
109
109
|
```
|
110
110
|
|
111
|
-
###
|
111
|
+
### 存储过程调用示例
|
112
112
|
|
113
|
-

|
114
114
|
|
115
|
-
###
|
115
|
+
### 存储过程任务调用结果
|
116
116
|
|
117
117
|
```javascript
|
118
|
-
{
|
119
|
-
"out_cursor"
|
118
|
+
{
|
119
|
+
"out_cursor": [
|
120
120
|
{
|
121
|
-
"FARMDATE"
|
122
|
-
"MAXT"
|
123
|
-
"MINT"
|
124
|
-
"WINDSPEED"
|
125
|
-
"FARMHUM": 70
|
126
|
-
"
|
121
|
+
"FARMDATE": "2006-01-07T15:00:00.000Z",
|
122
|
+
"MAXT": 29.5,
|
123
|
+
"MINT": 21.8,
|
124
|
+
"WINDSPEED": 1.6,
|
125
|
+
"FARMHUM": 70.2,
|
126
|
+
"PRECIPITATION": 0
|
127
127
|
},
|
128
128
|
{
|
129
|
-
"FARMDATE"
|
130
|
-
"MAXT"
|
131
|
-
"MINT"
|
132
|
-
"WINDSPEED"
|
133
|
-
"FARMHUM": 67
|
134
|
-
"
|
129
|
+
"FARMDATE": "2006-01-08T15:00:00.000Z",
|
130
|
+
"MAXT": 30.1,
|
131
|
+
"MINT": 21,
|
132
|
+
"WINDSPEED": 1.6,
|
133
|
+
"FARMHUM": 67.4,
|
134
|
+
"PRECIPITATION": 0
|
135
135
|
},
|
136
|
-
|
136
|
+
..
|
137
137
|
]
|
138
138
|
}
|
139
139
|
```
|
140
|
-
|
141
|
-
通过www.DeepL.com/Translator(免费版)翻译
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@things-factory/integration-base",
|
3
|
-
"version": "6.1.
|
3
|
+
"version": "6.1.129",
|
4
4
|
"main": "dist-server/index.js",
|
5
5
|
"browser": "client/index.js",
|
6
6
|
"things-factory": true,
|
@@ -26,12 +26,12 @@
|
|
26
26
|
},
|
27
27
|
"dependencies": {
|
28
28
|
"@apollo/client": "^3.6.9",
|
29
|
-
"@things-factory/api": "^6.1.
|
30
|
-
"@things-factory/auth-base": "^6.1.
|
31
|
-
"@things-factory/env": "^6.1.
|
32
|
-
"@things-factory/oauth2-client": "^6.1.
|
33
|
-
"@things-factory/scheduler-client": "^6.1.
|
34
|
-
"@things-factory/shell": "^6.1.
|
29
|
+
"@things-factory/api": "^6.1.129",
|
30
|
+
"@things-factory/auth-base": "^6.1.129",
|
31
|
+
"@things-factory/env": "^6.1.129",
|
32
|
+
"@things-factory/oauth2-client": "^6.1.129",
|
33
|
+
"@things-factory/scheduler-client": "^6.1.129",
|
34
|
+
"@things-factory/shell": "^6.1.129",
|
35
35
|
"async-mqtt": "^2.5.0",
|
36
36
|
"chance": "^1.1.11",
|
37
37
|
"cross-fetch": "^3.0.4",
|
@@ -46,5 +46,5 @@
|
|
46
46
|
"devDependencies": {
|
47
47
|
"@types/cron": "^2.0.1"
|
48
48
|
},
|
49
|
-
"gitHead": "
|
49
|
+
"gitHead": "34348ec14b8648940212758df1945b9321a13593"
|
50
50
|
}
|