我有一個包含程序數據的postgresql數據庫。在Libreoffice Calc中,我有基本的宏與postgresql數據庫進行交互,並使用Calc作爲用戶客戶端。其中一個postgresql表有一個數組,我不能直接從Basic索引到該數組。從Libreoffice Basic訪問SQL數組元素
下面是表設置,如圖pgAdmin的:
sq_num integer,
year_start integer,
id serial NOT NULL,
"roleArray" text[]
說我想選擇roleArray [50]。我所有的嘗試都是通過傳遞整個數組的基本結果。我當然可以自己拆分數組並獲取我之後的元素,但是我使用SQL數組來幫助自動化這些東西。
我的基本代碼使用Libreoffice Base文件連接到postgresql數據庫。將基礎文件,我不能創建一個查詢,將選擇一個單獨的元素,而不是返回整個數組,除非我選擇按鈕「運行SQL命令直接」,並運行此查詢:
SELECT "roleArray"['50'] FROM myTableThatHasArrays
然後我得到的元素按照預期從每個記錄中獲得50個
我相信有一個錯誤報告描述了這一點,其中基本命令解析器無法處理索引數組。我的問題是克服這個問題的最好方法是什麼?
最好的方案是能夠直接從Basic中索引SQL數組中的元素。
如果沒有答案,解決此問題的權宜辦法是接受整個數組。它將作爲csv字符串收到,並在最後帶有大括號。解決方案是分開大括號,然後分割逗號,然後索引你想要的元素。然而,這是一個解決方法,而不是我希望使用的答案。 – Smith
歡迎來到StackOverflow!什麼是您嘗試的基本代碼? –
另一件要提及的事情:不要讓pgAdmin將您的表名放在引號中。如果你不用小寫字母輸入列名,它會顯示它。 – Smith