@things-factory/integration-base 7.0.7 → 7.0.13
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/assets/images/mssql-procedure-example1.png +0 -0
- package/dist-server/controllers/index.d.ts +1 -0
- package/dist-server/controllers/index.js +1 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/publish-data.d.ts +6 -0
- package/dist-server/controllers/publish-data.js +22 -0
- package/dist-server/controllers/publish-data.js.map +1 -0
- package/dist-server/engine/connector/mssql-connector.d.ts +10 -0
- package/dist-server/engine/connector/mssql-connector.js +42 -11
- package/dist-server/engine/connector/mssql-connector.js.map +1 -1
- package/dist-server/engine/task/index.d.ts +2 -0
- package/dist-server/engine/task/index.js +2 -0
- package/dist-server/engine/task/index.js.map +1 -1
- package/dist-server/engine/task/mssql-procedure.d.ts +1 -0
- package/dist-server/engine/task/mssql-procedure.js +94 -0
- package/dist-server/engine/task/mssql-procedure.js.map +1 -0
- package/dist-server/engine/task/oracle-procedure.js +4 -1
- package/dist-server/engine/task/oracle-procedure.js.map +1 -1
- package/dist-server/engine/task/state-group-read.d.ts +1 -0
- package/dist-server/engine/task/state-group-read.js +62 -0
- package/dist-server/engine/task/state-group-read.js.map +1 -0
- package/dist-server/service/index.d.ts +1 -1
- package/dist-server/service/scenario-instance/scenario-instance-type.js +6 -9
- package/dist-server/service/scenario-instance/scenario-instance-type.js.map +1 -1
- package/dist-server/service/state-register/data-resolver.d.ts +6 -0
- package/dist-server/service/state-register/data-resolver.js +61 -0
- package/dist-server/service/state-register/data-resolver.js.map +1 -0
- package/dist-server/service/state-register/index.d.ts +2 -1
- package/dist-server/service/state-register/index.js +2 -1
- package/dist-server/service/state-register/index.js.map +1 -1
- package/dist-server/service/state-register/state-register-query.js +1 -1
- package/dist-server/service/state-register/state-register-query.js.map +1 -1
- package/dist-server/service/state-register/state-register-type.d.ts +6 -0
- package/dist-server/service/state-register/state-register-type.js +40 -16
- package/dist-server/service/state-register/state-register-type.js.map +1 -1
- package/dist-server/service/state-register/state-register.d.ts +3 -0
- package/dist-server/service/state-register/state-register.js +36 -13
- package/dist-server/service/state-register/state-register.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/integration/task/mqtt-subscribe.ms.md +127 -11
- package/helps/integration/task/mssql-procedure.ja.md +105 -0
- package/helps/integration/task/mssql-procedure.ko.md +89 -0
- package/helps/integration/task/mssql-procedure.md +89 -0
- package/helps/integration/task/mssql-procedure.ms.md +89 -0
- package/helps/integration/task/mssql-procedure.zh.md +103 -0
- package/helps/integration/task/oracle-procedure.ko.md +0 -2
- package/helps/integration/task/state-group-read.ja.md +8 -0
- package/helps/integration/task/state-group-read.ko.md +8 -0
- package/helps/integration/task/state-group-read.md +10 -0
- package/helps/integration/task/state-group-read.ms.md +8 -0
- package/helps/integration/task/state-group-read.zh.md +8 -0
- package/package.json +8 -8
- package/server/controllers/index.ts +1 -0
- package/server/controllers/publish-data.ts +29 -0
- package/server/engine/connector/mssql-connector.ts +43 -12
- package/server/engine/task/index.ts +2 -0
- package/server/engine/task/mssql-procedure.ts +128 -0
- package/server/engine/task/oracle-procedure.ts +4 -1
- package/server/engine/task/state-group-read.ts +69 -0
- package/server/service/scenario-instance/scenario-instance-type.ts +6 -9
- package/server/service/state-register/data-resolver.ts +56 -0
- package/server/service/state-register/index.ts +2 -1
- package/server/service/state-register/state-register-query.ts +1 -1
- package/server/service/state-register/state-register-type.ts +36 -20
- package/server/service/state-register/state-register.ts +39 -17
@@ -1,15 +1,131 @@
|
|
1
|
-
#
|
1
|
+
# Prosedur MSSQL
|
2
2
|
|
3
|
-
Ini adalah tugas yang
|
4
|
-
Ia terus menerima mesej dari broker MQTT yang sepadan dengan tag yang ditetapkan, menyimpan mesej terakhir, dan mengembalikannya apabila tugas ini dijalankan.
|
5
|
-
Jika tiada mesej baru sehingga waktu pelaksanaan tugas, ia menunggu sehingga mesej baru diterima.
|
3
|
+
Ini adalah tugas untuk memanggil prosedur yang disimpan dalam pangkalan data MSSQL, mengembalikan senarai data atau nilai jenis data tertentu berdasarkan jenis data individu.
|
6
4
|
|
7
5
|
## Parameter
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
7
|
+
### Kod Prosedur
|
8
|
+
|
9
|
+
- Kod prosedur dijana secara automatik oleh _nama prosedur_ dan _parameter_, dan pengguna tidak perlu memasukkannya secara berasingan.
|
10
|
+
- Sebagai contoh, jika nama prosedur adalah _dbo.myproc_ dan parameternya adalah _id_ dan _out_name_, ia diwakili seperti berikut:
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### Nama Prosedur
|
17
|
+
|
18
|
+
- Tentukan nama prosedur.
|
19
|
+
- Jika prosedur perlu dibezakan oleh nama skema, ia dipisahkan dengan '.'.
|
20
|
+
- Contoh penggunaan.
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### Parameter
|
27
|
+
|
28
|
+
- Parameter terdiri daripada elemen berikut:
|
29
|
+
- Nama parameter
|
30
|
+
- Penetapan input/output: IN, OUT, INOUT (jenis OUT dengan nilai awal)
|
31
|
+
- Jenis parameter: CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, TINYINT, SMALLINT, INT, BIGINT, FLOAT, REAL, DECIMAL, NUMERIC, MONEY, SMALLMONEY, DATE, TIME, DATETIME, SMALLDATETIME, DATETIME2, DATETIMEOFFSET
|
32
|
+
- Nilai: jika pembolehubah adalah input, nilai untuk input tersebut
|
33
|
+
- Saiz maksimum: jika jenis pembolehubah adalah CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, tentukan saiz maksimum pembolehubah, DECIMAL, NUMERIC menetapkan ketepatan.
|
34
|
+
|
35
|
+
#### Nama Parameter
|
36
|
+
|
37
|
+
Tentukan nama parameter yang digunakan dalam penulisan prosedur. Dalam contoh di atas,
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
id dan out_name adalah nama parameter.
|
44
|
+
|
45
|
+
#### Penetapan Input/Output
|
46
|
+
|
47
|
+
Tentukan sama ada pembolehubah adalah input (IN), output (OUT), atau input/output (INOUT). Dalam MSSQL, ia boleh ditetapkan sebagai `IN`, `OUT`, `INOUT`, dll.
|
48
|
+
|
49
|
+
#### Jenis Parameter
|
50
|
+
|
51
|
+
Tentukan jenis parameter. Dalam MSSQL, jenis data string termasuk `CHAR`, `VARCHAR`, `NCHAR`, `NVARCHAR`, `TEXT`, `NTEXT`, dan jenis berangka termasuk `TINYINT`, `SMALLINT`, `INT`, `BIGINT`, `FLOAT`, `REAL`, `DECIMAL`, `NUMERIC`, `MONEY`, `SMALLMONEY`. Jenis tarikh dan masa termasuk `DATE`, `TIME`, `DATETIME`, `SMALLDATETIME`, `DATETIME2`, `DATETIMEOFFSET`.
|
52
|
+
|
53
|
+
Jika prosedur dilaksanakan seperti berikut,
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
Parameter pertama dan kedua kedua-duanya ditetapkan sebagai `VARCHAR`, dan apabila memanggil prosedur sedemikian, jenis parameter mesti ditetapkan sebagai `VARCHAR`, dan saiz maksimum output mesti ditetapkan.
|
64
|
+
|
65
|
+
#### Nilai (val)
|
66
|
+
|
67
|
+
Jika parameter adalah input (IN), tentukan nilainya. Masukkan nilai "konstan" secara langsung untuk nilai tersebut.
|
68
|
+
|
69
|
+
Nilai ini digunakan apabila tiada hasil daripada tetapan 'akses' di atas.
|
70
|
+
|
71
|
+
#### Saiz Maksimum
|
72
|
+
|
73
|
+
Jika jenis parameter adalah CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, tentukan saiz maksimum. Untuk jenis lain, jangan tentukan nilai dan abaikan.
|
74
|
+
|
75
|
+
## Hasil Tugas
|
76
|
+
|
77
|
+
Hasil panggilan prosedur dikembalikan dalam format Object, dengan nama parameter yang ditetapkan sebagai output menjadi kunci dan nilai dikembalikan.
|
78
|
+
|
79
|
+
Sebagai contoh, hasil nilai tugas yang diperkenalkan di atas dikembalikan seperti berikut:
|
80
|
+
|
81
|
+
```
|
82
|
+
{
|
83
|
+
out_name: 'Admin'
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
## Contoh Penggunaan Lain (Cursor)
|
88
|
+
|
89
|
+
### Contoh Prosedur
|
90
|
+
|
91
|
+
```sql
|
92
|
+
CREATE PROCEDURE dbo.GetFarmWeather (@out_cursor CURSOR VARYING OUTPUT)
|
93
|
+
AS
|
94
|
+
BEGIN
|
95
|
+
SET @out_cursor = CURSOR FOR
|
96
|
+
SELECT * FROM dbo.FarmWeather WHERE rownum <= 1000;
|
97
|
+
OPEN @out_cursor;
|
98
|
+
END;
|
99
|
+
```
|
100
|
+
|
101
|
+
### Contoh Panggilan Prosedur
|
102
|
+
|
103
|
+

|
104
|
+
|
105
|
+
### Hasil Panggilan Tugas Prosedur
|
106
|
+
|
107
|
+
```javascript
|
108
|
+
{
|
109
|
+
"out_cursor": [
|
110
|
+
{
|
111
|
+
"FARMDATE": "2006-01-07T15:00:00.000Z",
|
112
|
+
"MAXT": 29.5,
|
113
|
+
"MINT": 21.8,
|
114
|
+
"WINDSPEED": 1.6,
|
115
|
+
"FARMHUM": 70.2,
|
116
|
+
"PRECIPITATION": 0
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"FARMDATE": "2006-01-08T15:00:00.000Z",
|
120
|
+
"MAXT": 30.1,
|
121
|
+
"MINT": 21,
|
122
|
+
"WINDSPEED": 1.6,
|
123
|
+
"FARMHUM": 67.4,
|
124
|
+
"PRECIPITATION": 0
|
125
|
+
},
|
126
|
+
..
|
127
|
+
]
|
128
|
+
}
|
129
|
+
```
|
130
|
+
|
131
|
+
Anda boleh merujuk kandungan ini untuk memanggil dan memproses hasil prosedur untuk MSSQL dengan mudah.
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# MSSQL プロシージャ
|
2
|
+
|
3
|
+
これはMSSQLデータベースに保存されているプロシージャを呼び出すタスクであり、個々のデータタイプに基づいてデータのリストまたは特定のデータタイプの値を返します。
|
4
|
+
|
5
|
+
## パラメータ
|
6
|
+
|
7
|
+
### プロシージャコード
|
8
|
+
|
9
|
+
- プロシージャコードは*プロシージャ名*と*パラメータ*によって自動生成され、ユーザーが別途入力する必要はありません。
|
10
|
+
- 例えば、プロシージャ名が*dbo.myproc*で、パラメータが*id*と*out_name*の場合、次のように表現されます。
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### プロシージャ名
|
17
|
+
|
18
|
+
- プロシージャの名前を指定します。
|
19
|
+
- プロシージャをスキーマ名などで区別する必要がある場合は、'.'で区切ります。
|
20
|
+
- 使用例。
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### パラメータ
|
27
|
+
|
28
|
+
- パラメータは次の要素で構成されています:
|
29
|
+
- パラメータ名
|
30
|
+
- 入出力指定:IN、OUT、INOUT(初期値を持つOUTタイプ)
|
31
|
+
- パラメータタイプ:CHAR、VARCHAR、NCHAR、NVARCHAR、TEXT、NTEXT、TINYINT、SMALLINT、INT、BIGINT、FLOAT、REAL、DECIMAL、NUMERIC、MONEY、SMALLMONEY、DATE、TIME、DATETIME、SMALLDATETIME、DATETIME2、DATETIMEOFFSET
|
32
|
+
- 値:変数が入力の場合、その入力に対する値
|
33
|
+
- 最大サイズ:変数タイプがCHAR、VARCHAR、NCHAR、NVARCHAR、TEXT、NTEXTの場合、変数の最大サイズを指定し、DECIMAL、NUMERICは精度情報を設定します。
|
34
|
+
|
35
|
+
#### パラメータ名
|
36
|
+
|
37
|
+
プロシージャ作成に使用されたパラメータの名前を指定します。前の例の場合、
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
idとout_nameがそれぞれパラメータ名です。
|
44
|
+
|
45
|
+
#### 入出力指定
|
46
|
+
|
47
|
+
その変数が入力(IN)、出力(OUT)、または入出力(INOUT)であるかを指定します。MSSQLでは`IN`、`OUT`、`INOUT`などで指定できます。
|
48
|
+
|
49
|
+
#### パラメータタイプ
|
50
|
+
|
51
|
+
パラメータタイプを指定します。MSSQLで使用される文字列データタイプには`CHAR`、`VARCHAR`、`NCHAR`、`NVARCHAR`、`TEXT`、`NTEXT`があり、数値タイプには`TINYINT`、`SMALLINT`、`INT`、`BIGINT`、`FLOAT`、`REAL`、`DECIMAL`、`NUMERIC`、`MONEY`、`SMALLMONEY`があります。日付と時間のタイプには`DATE`、`TIME`、`DATETIME`、`SMALLDATETIME`、`DATETIME2`、`DATETIMEOFFSET`があります。
|
52
|
+
|
53
|
+
プロシージャが次のように実装されている場合、
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
最初のパラメータと2番目のパラメータはどちらも`VARCHAR`で指定されており、このようなプロシージャを呼び出す場合、パラメータタイプはすべて`VARCHAR`を指定する必要があり、出力の場合、最大サイズまで指定する必要があります。
|
64
|
+
|
65
|
+
#### 値(val)
|
66
|
+
|
67
|
+
パラメータが入力(IN)の場合、その値を指定します。その値に直接"定数"値を入力します。
|
68
|
+
|
69
|
+
この値は上記の'アクセス設定'に結果がない場合に使用されます。
|
70
|
+
|
71
|
+
#### 最大サイズ
|
72
|
+
|
73
|
+
パラメータタイプがCHAR、VARCHAR、NCHAR、NVARCHAR、TEXT、NTEXTの場合、最大サイズを指定します。他のタイプの場合、値を指定せず無視します。
|
74
|
+
|
75
|
+
## タスク結果
|
76
|
+
|
77
|
+
プロシージャ呼び出しの結果はObject形式で返され、出力に指定されたパラメータ名がキー
|
78
|
+
|
79
|
+
となり値が返されます。
|
80
|
+
|
81
|
+
例えば、上記で紹介されたタスクの結果値は次のように返されます。
|
82
|
+
|
83
|
+
```
|
84
|
+
{
|
85
|
+
out_name: 'Admin'
|
86
|
+
}
|
87
|
+
```
|
88
|
+
|
89
|
+
## その他の使用例(カーソル)
|
90
|
+
|
91
|
+
### プロシージャ作成例
|
92
|
+
|
93
|
+
```sql
|
94
|
+
CREATE PROCEDURE dbo.GetFarmWeather (@out_cursor CURSOR VARYING OUTPUT)
|
95
|
+
AS
|
96
|
+
BEGIN
|
97
|
+
SET @out_cursor = CURSOR FOR
|
98
|
+
SELECT * FROM dbo.FarmWeather WHERE rownum <= 1000;
|
99
|
+
OPEN @out_cursor;
|
100
|
+
END;
|
101
|
+
```
|
102
|
+
|
103
|
+
### プロシージャ作成例
|
104
|
+
|
105
|
+

|
@@ -0,0 +1,89 @@
|
|
1
|
+
# MSSQL Procedure
|
2
|
+
|
3
|
+
MSSQL 데이터베이스에 저장되어 있는 프로시저를 호출하는 태스크이며, 개별 데이터 타입에 따라서 데이터의 리스트 혹은 특정 데이터 타입의 값을 반환한다.
|
4
|
+
|
5
|
+
## Parameters
|
6
|
+
|
7
|
+
### 프로시저 코드
|
8
|
+
|
9
|
+
- 프로시저 코드는 *프로시저 이름*과 *파라미터*에 의해서 자동으로 생성되는 코드로서, 별도로 사용자가 입력할 필요는 없다.
|
10
|
+
- 만약, 프로시저의 이름이 *dbo.myproc*이고, 파라미터가 *id*와 *out_name*으로 구성된다면, 다음과 같이 표현된다.
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### 프로시저 이름
|
17
|
+
|
18
|
+
- 프로시저의 이름을 지정한다.
|
19
|
+
- 프로시저가 스키마 이름 등으로 구분이 필요할 경우 '.'을 통해서 구분한다.
|
20
|
+
- 사용 예.
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### 파라미터
|
27
|
+
|
28
|
+
- 파라미터는 다음과 같은 요소로 구성되어 있다.
|
29
|
+
- 파라미터 이름
|
30
|
+
- 입출력 지정: IN, OUT, INOUT(초기값을 갖는 OUT 타입)
|
31
|
+
- 파라미터 타입: CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, TINYINT, SMALLINT, INT, BIGINT, FLOAT, REAL, DECIMAL, NUMERIC, MONEY, SMALLMONEY, DATE, TIME, DATETIME, SMALLDATETIME, DATETIME2, DATETIMEOFFSET
|
32
|
+
- 값: 해당 변수가 입력일 경우, 해당 입력에 대한 값
|
33
|
+
- 최대 크기: 해당 변수 타입이 CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT일 경우, 변수의 최대 크기를 지정하며, DECIMAL, NUMERIC은 자릿수 정보를 설정한다.
|
34
|
+
|
35
|
+
#### 파라미터 이름
|
36
|
+
|
37
|
+
파라미터 이름은 프로시저 작성에 사용된 파라미터의 이름을 지정한다. 앞의 예의 경우,
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
id와 out_name이 각각 파라미터 이름이다.
|
44
|
+
|
45
|
+
#### 입출력 지정
|
46
|
+
|
47
|
+
해당 변수가 입력(IN), 출력(OUT), 혹은 입출력(INOUT) 여부를 지정한다. MSSQL에서는 `IN`, `OUT`, `INOUT` 등으로 지정할 수 있다.
|
48
|
+
|
49
|
+
#### 파라미터 타입
|
50
|
+
|
51
|
+
파라미터 타입을 지정한다. MSSQL에서 사용되는 문자열 데이터 타입에는 `CHAR`, `VARCHAR`, `NCHAR`, `NVARCHAR`, `TEXT`, `NTEXT` 등이 있으며, 숫자 타입에는 `TINYINT`, `SMALLINT`, `INT`, `BIGINT`, `FLOAT`, `REAL`, `DECIMAL`, `NUMERIC`, `MONEY`, `SMALLMONEY` 등이 있다. 날짜와 시간 타입에는 `DATE`, `TIME`, `DATETIME`, `SMALLDATETIME`, `DATETIME2`, `DATETIMEOFFSET` 등이 있다.
|
52
|
+
|
53
|
+
프로시저가 다음과 같이 구현되어 있다면,
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
첫 번째 파라미터와 두 번째 파라미터 모두 `VARCHAR`로 지정되어 있으며, 이러한 프로시저를 호출해야 할 경우 파라미터 타입은 모두 `VARCHAR`를 지정해야 하고, 출력의 경우, 최대 크기까지 지정해야 한다.
|
64
|
+
|
65
|
+
#### 값(val)
|
66
|
+
|
67
|
+
파라미터가 입력(IN)일 경우, 해당 값을 지정한다. 해당 값에 바로 "상수" 값을 입력한다.
|
68
|
+
|
69
|
+
이 값은 위 '접근자' 설정에 따른 결과가 없는 경우에 이 '값'이 사용된다.
|
70
|
+
|
71
|
+
#### 최대 크기
|
72
|
+
|
73
|
+
파라미터 타입이 CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT일 경우, 최대 크기를 지정한다. 다른 타입의 경우 값을 지정하지 않고 무시한다.
|
74
|
+
|
75
|
+
## 태스크 결과
|
76
|
+
|
77
|
+
프로시저 호출에 대한 결과는 Object 형태로 반환되며, 파라미터 중에서 출력으로 지정된 파라미터 이름이 키가 되어 값을 반환한다.
|
78
|
+
|
79
|
+
만약, 위에서 소개된 태스크의 경우 다음과 같은 결과 값을 반환한다.
|
80
|
+
|
81
|
+
```
|
82
|
+
{
|
83
|
+
out_name: 'Admin'
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
### 프로시저 작성 예
|
88
|
+
|
89
|
+

|
@@ -0,0 +1,89 @@
|
|
1
|
+
# MSSQL Procedure
|
2
|
+
|
3
|
+
This task involves calling a procedure stored in an MSSQL database and returning either a list of data or a value of a specific data type based on individual data types.
|
4
|
+
|
5
|
+
## Parameters
|
6
|
+
|
7
|
+
### Procedure Code
|
8
|
+
|
9
|
+
- The procedure code is automatically generated by the _procedure name_ and _parameters_, and the user does not need to input it separately.
|
10
|
+
- For example, if the procedure name is _dbo.myproc_ and the parameters are _id_ and _out_name_, it is represented as follows:
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### Procedure Name
|
17
|
+
|
18
|
+
- Specify the name of the procedure.
|
19
|
+
- If the procedure needs to be distinguished by schema name, it is separated by '.'.
|
20
|
+
- Example usage.
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### Parameters
|
27
|
+
|
28
|
+
- Parameters consist of the following elements:
|
29
|
+
- Parameter name
|
30
|
+
- Input/output designation: IN, OUT, INOUT (OUT type with initial value)
|
31
|
+
- Parameter type: CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, TINYINT, SMALLINT, INT, BIGINT, FLOAT, REAL, DECIMAL, NUMERIC, MONEY, SMALLMONEY, DATE, TIME, DATETIME, SMALLDATETIME, DATETIME2, DATETIMEOFFSET
|
32
|
+
- Value: if the variable is input, the value for that input
|
33
|
+
- Maximum size: if the variable type is CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, specify the maximum size of the variable, DECIMAL, NUMERIC set the precision.
|
34
|
+
|
35
|
+
#### Parameter Name
|
36
|
+
|
37
|
+
Specify the name of the parameter used in writing the procedure. In the above example,
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
id and out_name are the parameter names.
|
44
|
+
|
45
|
+
#### Input/Output Designation
|
46
|
+
|
47
|
+
Specify whether the variable is input (IN), output (OUT), or input/output (INOUT). In MSSQL, it can be designated as `IN`, `OUT`, `INOUT`, etc.
|
48
|
+
|
49
|
+
#### Parameter Type
|
50
|
+
|
51
|
+
Specify the parameter type. In MSSQL, string data types include `CHAR`, `VARCHAR`, `NCHAR`, `NVARCHAR`, `TEXT`, `NTEXT`, and numeric types include `TINYINT`, `SMALLINT`, `INT`, `BIGINT`, `FLOAT`, `REAL`, `DECIMAL`, `NUMERIC`, `MONEY`, `SMALLMONEY`. Date and time types include `DATE`, `TIME`, `DATETIME`, `SMALLDATETIME`, `DATETIME2`, `DATETIMEOFFSET`.
|
52
|
+
|
53
|
+
If the procedure is implemented as follows,
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
Both the first and second parameters are designated as `VARCHAR`, and when calling such a procedure, the parameter type must be specified as `VARCHAR`, and the output's maximum size must be specified.
|
64
|
+
|
65
|
+
#### Value (val)
|
66
|
+
|
67
|
+
If the parameter is input (IN), specify the value. Input the "constant" value directly for that value.
|
68
|
+
|
69
|
+
This value is used when there is no result from the 'accessor' setting above.
|
70
|
+
|
71
|
+
#### Maximum Size
|
72
|
+
|
73
|
+
If the parameter type is CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, specify the maximum size. For other types, do not specify a value and ignore it.
|
74
|
+
|
75
|
+
## Task Result
|
76
|
+
|
77
|
+
The result of the procedure call is returned in Object format, with the parameter names designated as output being the keys and the values being returned.
|
78
|
+
|
79
|
+
For example, the result value of the task introduced above is returned as follows:
|
80
|
+
|
81
|
+
```
|
82
|
+
{
|
83
|
+
out_name: 'Admin'
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
### Procedure Example
|
88
|
+
|
89
|
+

|
@@ -0,0 +1,89 @@
|
|
1
|
+
# Prosedur MSSQL
|
2
|
+
|
3
|
+
Ini adalah tugas untuk memanggil prosedur yang disimpan dalam pangkalan data MSSQL, mengembalikan senarai data atau nilai jenis data tertentu berdasarkan jenis data individu.
|
4
|
+
|
5
|
+
## Parameter
|
6
|
+
|
7
|
+
### Kod Prosedur
|
8
|
+
|
9
|
+
- Kod prosedur dijana secara automatik oleh _nama prosedur_ dan _parameter_, dan pengguna tidak perlu memasukkannya secara berasingan.
|
10
|
+
- Sebagai contoh, jika nama prosedur adalah _dbo.myproc_ dan parameternya adalah _id_ dan _out_name_, ia diwakili seperti berikut:
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### Nama Prosedur
|
17
|
+
|
18
|
+
- Tentukan nama prosedur.
|
19
|
+
- Jika prosedur perlu dibezakan oleh nama skema, ia dipisahkan dengan '.'.
|
20
|
+
- Contoh penggunaan.
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### Parameter
|
27
|
+
|
28
|
+
- Parameter terdiri daripada elemen berikut:
|
29
|
+
- Nama parameter
|
30
|
+
- Penetapan input/output: IN, OUT, INOUT (jenis OUT dengan nilai awal)
|
31
|
+
- Jenis parameter: CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, TINYINT, SMALLINT, INT, BIGINT, FLOAT, REAL, DECIMAL, NUMERIC, MONEY, SMALLMONEY, DATE, TIME, DATETIME, SMALLDATETIME, DATETIME2, DATETIMEOFFSET
|
32
|
+
- Nilai: jika pembolehubah adalah input, nilai untuk input tersebut
|
33
|
+
- Saiz maksimum: jika jenis pembolehubah adalah CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, tentukan saiz maksimum pembolehubah, DECIMAL, NUMERIC menetapkan ketepatan.
|
34
|
+
|
35
|
+
#### Nama Parameter
|
36
|
+
|
37
|
+
Tentukan nama parameter yang digunakan dalam penulisan prosedur. Dalam contoh di atas,
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
id dan out_name adalah nama parameter.
|
44
|
+
|
45
|
+
#### Penetapan Input/Output
|
46
|
+
|
47
|
+
Tentukan sama ada pembolehubah adalah input (IN), output (OUT), atau input/output (INOUT). Dalam MSSQL, ia boleh ditetapkan sebagai `IN`, `OUT`, `INOUT`, dll.
|
48
|
+
|
49
|
+
#### Jenis Parameter
|
50
|
+
|
51
|
+
Tentukan jenis parameter. Dalam MSSQL, jenis data string termasuk `CHAR`, `VARCHAR`, `NCHAR`, `NVARCHAR`, `TEXT`, `NTEXT`, dan jenis berangka termasuk `TINYINT`, `SMALLINT`, `INT`, `BIGINT`, `FLOAT`, `REAL`, `DECIMAL`, `NUMERIC`, `MONEY`, `SMALLMONEY`. Jenis tarikh dan masa termasuk `DATE`, `TIME`, `DATETIME`, `SMALLDATETIME`, `DATETIME2`, `DATETIMEOFFSET`.
|
52
|
+
|
53
|
+
Jika prosedur dilaksanakan seperti berikut,
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
Parameter pertama dan kedua kedua-duanya ditetapkan sebagai `VARCHAR`, dan apabila memanggil prosedur sedemikian, jenis parameter mesti ditetapkan sebagai `VARCHAR`, dan saiz maksimum output mesti ditetapkan.
|
64
|
+
|
65
|
+
#### Nilai (val)
|
66
|
+
|
67
|
+
Jika parameter adalah input (IN), tentukan nilainya. Masukkan nilai "konstan" secara langsung untuk nilai tersebut.
|
68
|
+
|
69
|
+
Nilai ini digunakan apabila tiada hasil daripada tetapan 'akses' di atas.
|
70
|
+
|
71
|
+
#### Saiz Maksimum
|
72
|
+
|
73
|
+
Jika jenis parameter adalah CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, tentukan saiz maksimum. Untuk jenis lain, jangan tentukan nilai dan abaikan.
|
74
|
+
|
75
|
+
## Hasil Tugas
|
76
|
+
|
77
|
+
Hasil panggilan prosedur dikembalikan dalam format Object, dengan nama parameter yang ditetapkan sebagai output menjadi kunci dan nilai dikembalikan.
|
78
|
+
|
79
|
+
Sebagai contoh, hasil nilai tugas yang diperkenalkan di atas dikembalikan seperti berikut:
|
80
|
+
|
81
|
+
```
|
82
|
+
{
|
83
|
+
out_name: 'Admin'
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
### Contoh Prosedur
|
88
|
+
|
89
|
+

|
@@ -0,0 +1,103 @@
|
|
1
|
+
# MSSQL 过程
|
2
|
+
|
3
|
+
这是一个调用存储在MSSQL数据库中的过程的任务,根据不同的数据类型返回数据列表或特定数据类型的值。
|
4
|
+
|
5
|
+
## 参数
|
6
|
+
|
7
|
+
### 过程代码
|
8
|
+
|
9
|
+
- 过程代码由*过程名称*和*参数*自动生成,用户无需单独输入。
|
10
|
+
- 例如,如果过程名称是*dbo.myproc*,参数是*id*和*out_name*,则表示如下:
|
11
|
+
|
12
|
+
```
|
13
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
14
|
+
```
|
15
|
+
|
16
|
+
### 过程名称
|
17
|
+
|
18
|
+
- 指定过程的名称。
|
19
|
+
- 如果过程需要通过架构名称区分,则用'.'分隔。
|
20
|
+
- 使用示例。
|
21
|
+
|
22
|
+
```text
|
23
|
+
dbo.myproc
|
24
|
+
```
|
25
|
+
|
26
|
+
### 参数
|
27
|
+
|
28
|
+
- 参数由以下元素组成:
|
29
|
+
- 参数名称
|
30
|
+
- 输入/输出指定:IN, OUT, INOUT(具有初始值的OUT类型)
|
31
|
+
- 参数类型:CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT, TINYINT, SMALLINT, INT, BIGINT, FLOAT, REAL, DECIMAL, NUMERIC, MONEY, SMALLMONEY, DATE, TIME, DATETIME, SMALLDATETIME, DATETIME2, DATETIMEOFFSET
|
32
|
+
- 值:如果变量是输入,则为该输入的值
|
33
|
+
- 最大大小:如果变量类型是CHAR, VARCHAR, NCHAR, NVARCHAR, TEXT, NTEXT,则指定变量的最大大小,DECIMAL, NUMERIC则设置精度。
|
34
|
+
|
35
|
+
#### 参数名称
|
36
|
+
|
37
|
+
指定用于编写过程的参数名称。在上述示例中,
|
38
|
+
|
39
|
+
```sql
|
40
|
+
EXEC dbo.myproc @id, @out_name OUTPUT;
|
41
|
+
```
|
42
|
+
|
43
|
+
id和out_name分别是参数名称。
|
44
|
+
|
45
|
+
#### 输入/输出指定
|
46
|
+
|
47
|
+
指定变量是输入(IN)、输出(OUT)还是输入/输出(INOUT)。在MSSQL中,可以指定为`IN`、`OUT`、`INOUT`等。
|
48
|
+
|
49
|
+
#### 参数类型
|
50
|
+
|
51
|
+
指定参数类型。在MSSQL中,字符串数据类型包括`CHAR`、`VARCHAR`、`NCHAR`、`NVARCHAR`、`TEXT`、`NTEXT`,数值类型包括`TINYINT`、`SMALLINT`、`INT`、`BIGINT`、`FLOAT`、`REAL`、`DECIMAL`、`NUMERIC`、`MONEY`、`SMALLMONEY`。日期和时间类型包括`DATE`、`TIME`、`DATETIME`、`SMALLDATETIME`、`DATETIME2`、`DATETIMEOFFSET`。
|
52
|
+
|
53
|
+
如果过程如下所示,
|
54
|
+
|
55
|
+
```sql
|
56
|
+
CREATE PROCEDURE dbo.myproc (@in_id VARCHAR(50), @out_name VARCHAR(50) OUTPUT)
|
57
|
+
AS
|
58
|
+
BEGIN
|
59
|
+
SELECT @out_name = name FROM dbo.Users WHERE id = @in_id;
|
60
|
+
END;
|
61
|
+
```
|
62
|
+
|
63
|
+
第一个和第二个参数都指定为`VARCHAR`,调用此类过程时,参数类型必须指定为`VARCHAR`,输出的最大大小必须指定。
|
64
|
+
|
65
|
+
#### 值(val)
|
66
|
+
|
67
|
+
如果参数是输入(IN),则指定该值。直接为该值输入"常数"值。
|
68
|
+
|
69
|
+
当上述'访问者'设置没有结果时,将使用该'值'。
|
70
|
+
|
71
|
+
#### 最大大小
|
72
|
+
|
73
|
+
如果参数类型是CHAR、VARCHAR、NCHAR、NVARCHAR、TEXT、NTEXT,则指定最大大小。对于其他类型,不指定值并忽略。
|
74
|
+
|
75
|
+
## 任务结果
|
76
|
+
|
77
|
+
过程调用的结果以Object格式返回,输出指定的参数名称作为键返回值。
|
78
|
+
|
79
|
+
例如,上述任务的结果值如下返回:
|
80
|
+
|
81
|
+
```
|
82
|
+
{
|
83
|
+
out_name: 'Admin'
|
84
|
+
}
|
85
|
+
```
|
86
|
+
|
87
|
+
## 其他使用示例(游标)
|
88
|
+
|
89
|
+
### 过程示例
|
90
|
+
|
91
|
+
```sql
|
92
|
+
CREATE PROCEDURE dbo.GetFarmWeather (@out_cursor CURSOR VARYING OUTPUT)
|
93
|
+
AS
|
94
|
+
BEGIN
|
95
|
+
SET @out_cursor = CURSOR FOR
|
96
|
+
SELECT * FROM dbo.FarmWeather WHERE rownum <= 1000;
|
97
|
+
OPEN @out_cursor;
|
98
|
+
END;
|
99
|
+
```
|
100
|
+
|
101
|
+
### 过程示例
|
102
|
+
|
103
|
+

|
@@ -0,0 +1,10 @@
|
|
1
|
+
### English Translation
|
2
|
+
|
3
|
+
# state-group-read
|
4
|
+
|
5
|
+
This task reads the values of all states belonging to a specific group in the [state-register](../concept/state-register.md).
|
6
|
+
|
7
|
+
## parameters
|
8
|
+
|
9
|
+
- group
|
10
|
+
- Specifies the name of the "group" of states to be fetched.
|