

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# SVL\_STATEMENTTEXT
<a name="r_SVL_STATEMENTTEXT"></a>

使用 SVL\_STATEMENTTEXT 檢視來取得在系統上執行之所有 SQL 命令的完整記錄。

SVL\_STATEMENTTEXT 檢視包含 [STL\_DDLTEXT](r_STL_DDLTEXT.md)、[STL\_QUERYTEXT](r_STL_QUERYTEXT.md) 和 [STL\_UTILITYTEXT](r_STL_UTILITYTEXT.md) 資料表中所有資料列的聯集。此檢視也包含對 STL\_QUERY 資料表的聯結。

所有使用者都可看見 SVL\_STATEMENTTEXT。超級使用者可以看見所有資料列；一般使用者只能看見自己的資料。如需詳細資訊，請參閱[系統資料表和檢視中資料的可見性](cm_chap_system-tables.md#c_visibility-of-data)。

此資料表中的部份或所有資料也會在 SYS 監控檢視 [SYS\_QUERY\_HISTORY](SYS_QUERY_HISTORY.md) 中找到。SYS 監視檢視中的資料會格式化為更易於使用和理解。我們建議您使用 SYS 監控檢視進行查詢。

## 資料表欄
<a name="r_SVL_STATEMENTTEXT-table-columns"></a>


| 欄名稱  | 資料類型  | 說明  | 
| --- | --- | --- | 
| userid  | integer  | 產生項目之使用者的 ID。 | 
| xid  | bigint  | 與陳述式關聯的交易 ID。 | 
| pid  | integer  | 陳述式的處理程序 ID。 | 
| label  | character(320)  | 用於執行查詢的檔案名稱，或以 SET QUERY\_GROUP 命令定義的標籤。如果查詢不是檔案型，或未設定 QUERY\_GROUP 參數，則此欄位為空白。 | 
| starttime  | timestamp | 陳述試開始執行的確切時間，精確度為 6 位數的小數秒。例如：2009-06-12 11:29:19.131358 | 
| endtime  | timestamp | 陳述試完成執行的確切時間，精確度為 6 位數的小數秒。例如：2009-06-12 11:29:19.193640 | 
| sequence  | integer  | 當單一陳述式包含不只 200 個字元時，會將該陳述式的其他資料列記錄下來。序列 0 是第一列，1 是第二列，以此類推。 | 
| type  | varchar(10)  | SQL 陳述式的類型：QUERY、DDL 或 UTILITY。 | 
| text  | character(200)  | SQL 文字，以 200 個字元遞增。此欄位可能包含反斜線 (\\\\) 和換行符號 (\\n) 等特殊字元。 | 

## 範例查詢
<a name="r_SVL_STATEMENTTEXT-sample-query"></a>

下列查詢會傳回在 2009 年 6 月 16 日所執行的 DDL 陳述式：

```
select starttime, type, rtrim(text) from svl_statementtext
where starttime like '2009-06-16%' and type='DDL' order by starttime asc;

starttime                  | type |              rtrim
---------------------------|------|--------------------------------
2009-06-16 10:36:50.625097 | DDL  | create table ddltest(c1 int);
2009-06-16 15:02:16.006341 | DDL  | drop view alltickitjoin;
2009-06-16 15:02:23.65285  | DDL  | drop table sales;
2009-06-16 15:02:24.548928 | DDL  | drop table listing;
2009-06-16 15:02:25.536655 | DDL  | drop table event;
...
```

### 重建儲存的 SQL
<a name="r_SVL_STATEMENTTEXT-reconstruct-sql"></a>

若要重建儲存在 SVL\_STATEMENTTEXT `text` 資料欄中的 SQL，則需執行 SELECT 陳述式以從 `text` 資料欄的一或多個部分建立 SQL。請先以新的一行取代任意 (`\n`) 特殊字元，再執行重建的 SQL。下列 SELECT 陳述式顯示的結果會是 `query_statement` 欄中重建的 SQL 資料列。

```
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS query_statement 
from SVL_STATEMENTTEXT where pid=pg_backend_pid();
```

例如，下列查詢會選取 3 個資料欄。該查詢本身的長度超過 200 個字元，且會儲存在 SVL\_STATEMENTTEXT 的多個部分中。

```
select
1 AS a0123456789012345678901234567890123456789012345678901234567890,
2 AS b0123456789012345678901234567890123456789012345678901234567890,
3 AS b012345678901234567890123456789012345678901234
FROM stl_querytext;
```

在本範例中，查詢會儲存在 SVL\_STATEMENTTEXT `text` 資料欄的 2 個部分 (資料列) 中。

```
select sequence, text from SVL_STATEMENTTEXT where pid = pg_backend_pid() order by starttime, sequence;
```

```
 sequence |                                                                                             text                                                                                                   
----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        0 | select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234
        1 | \nFROM stl_querytext;
```

若要重建儲存在 STL\_STATEMENTTEXT 中的 SQL，請執行下列 SQL。

```
select LISTAGG(CASE WHEN LEN(RTRIM(text)) = 0 THEN text ELSE RTRIM(text) END, '') within group (order by sequence) AS text 
from SVL_STATEMENTTEXT where pid=pg_backend_pid();
```

若要在用戶端中使用產生的重建 SQL，請以新的一行取代任意 (`\n`) 特殊字元。

```
                                                                                                             text                                                                                                             
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 select\n1 AS a0123456789012345678901234567890123456789012345678901234567890,\n2 AS b0123456789012345678901234567890123456789012345678901234567890,\n3 AS b012345678901234567890123456789012345678901234\nFROM stl_querytext;
```