簡體   English   中英

如何在oracle數據庫中存儲大量的String數據?

[英]How to storage huge String data in oracle database?

我有以下字符串變量: 在此處輸入圖片說明 正如您所看到的,這是 JSON 文本,但它沒有轉換為 JSON,但我只是將它保存在 String 變量中。 我計算了字符數,大約有 5000 個,有時可能最多 10000 個字符。

將此類數據保存在我的 Oracle 數據庫中並且不丟失該字符串中的任何字符的最佳方法是什么? 我的意思是我知道轉換是必要的,所以我不想丟失任何字符,你可以看到我在那個字符串中保留了什么樣的字符。

有人可以告訴我這是否可以將其保存在VARCHAR2 中 或者我應該怎么做才能正確保存該數據。

我應該怎么做才能正確保存這些數據。

使用CLOB數據類型。

從 Oracle 12c 開始,您可以添加一個CHECK約束以確保它是有效的 JSON:

CREATE TABLE table_name (
  value CLOB CHECK ( value IS JSON )
);

數據庫<>小提琴

有人可以告訴我這是否可以將其保存在VARCHAR2

正如VARCHAR2數據類型Oracle 文檔所述

VARCHAR2數據類型存儲可變長度的字符串。 當創建具有一個表VARCHAR2列,則在1個4000字節之間指定一個最大字符串長度(以字節或字符) VARCHAR2柱。

因此,如果您有 5,000 - 10,000 個字符的字符串,則無法將其存儲在VARCHAR2數據類型中,因為它的最大大小為 4,000 字節。

如果 JSON 數據具有固定格式,那么您可以為 JSON 中的嵌套對象創建表,並將 JSON 中的鍵值對存儲在這些表的列中; 但是如果你想存儲完整的 JSON,那么你需要使用 LOB 數據類型,因為 JSON 是字符數據,所以 CLOB 是合適的。

您可以從數據庫 12.2 增加 VARCHAR2 的最大大小: https : //docs.oracle.com/en/database/oracle/oracle-database/12.2/refrn/MAX_STRING_SIZE.html#GUID-D424D23B-0933-425F-BC69 -9C0E6724693C

否則,如前所述,請使用 CLOB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM