2.5.6 數組類型
數組類型包括靜態數組和動態數組兩類。靜態數組是在聲明時已經確定數組大小的數組,其長度是預先定義好的,在整個程序中,一旦大小給定后就無法改變。而動態數組則不然,它可以隨程序需要而重新指定數組大小。動態數組的內存空間是從堆(Heap)上分配(動態分配)的,通過執行代碼為其分配存儲空間。當程序執行到這些語句時,才為其分配,程序員自己負責釋放內存。需要注意的是,DM中數組下標的起始值為1。理論上DM支持的靜態數組每個維度的最大長度為65534B,動態數組每個維度的最大長度為2147483646B,但是數組最大長度同時受系統內部堆棧(靜態數組)和堆(動態數組)空間大小的限制。如果超出堆棧/堆的空間限制,系統就會報錯。
1.靜態數組
靜態數組的語法格式如下:

【例2-7】數組類型定義舉例。


2.動態數組
動態數組與靜態數組的用法類似,區別只在于動態數組沒有指定下標,需要動態分配空間。動態數組的語法格式如下:

多維動態數組分配空間的語法格式如下:

另外,可以使用如下兩種語法格式對多維數組的某一維度進行空間分配。其中,第二種語法格式使用自定義類型來創建動態數組,前提是先定義好一個類型,該語法格式適用于含有精度或長度的數據類型。

【例2-8】動態數組使用舉例。

【例2-9】使用自定義類型定義動態數組舉例。

【例2-10】多維動態數組舉例。

DM還支持索引數組,如例2-11所示。
【例2-11】索引數組舉例。

在DM中,可以利用查詢語句查詢數組信息。語法格式如下:

目前,DM只支持一維數組的查詢。數組類型可以是記錄類型或普通數據庫類型。記錄類型數組查詢出來的列名為記錄類型的每個屬性名稱。普通數據庫類型數組查詢出來的列名均為“C”。
【例2-12】數組與表的連接查詢舉例。

返回結果如下:

推薦閱讀
- MySQL高可用解決方案:從主從復制到InnoDB Cluster架構
- 數據挖掘原理與實踐
- Microsoft SQL Server企業級平臺管理實踐
- 數據可視化:從小白到數據工程師的成長之路
- Python數據挖掘:入門、進階與實用案例分析
- 大數據時代下的智能轉型進程精選(套裝共10冊)
- 數據驅動設計:A/B測試提升用戶體驗
- OracleDBA實戰攻略:運維管理、診斷優化、高可用與最佳實踐
- 大數據架構和算法實現之路:電商系統的技術實戰
- 一本書講透Elasticsearch:原理、進階與工程實踐
- 大數據技術原理與應用:概念、存儲、處理、分析與應用
- 中文版Access 2007實例與操作
- 云計算寶典:技術與實踐
- MySQL數據庫實用教程
- 數據中心經營之道