當前位置:首頁 » 編程語言 » plsql數組

plsql數組

發布時間: 2022-09-25 17:06:12

A. PLsql:如何讀取參數數組

DECLARE @Test VARCHAR(50)
DECLARE @ArgsTable TABLE
(
Arg VARCHAR(50)
)

SET @Test = 'ASD,FGH,JKL,YUI'

DECLARE @TempIndex INT

WHILE @Test LIKE '%,%'
BEGIN
SET @TempIndex = CHARINDEX(',',@Test) --取出,位置

INSERT INTO @ArgsTable(Arg)
SELECT SUBSTRING(@Test,0,@TempIndex) --截取第一個參數

SET @Test = RIGHT(@Test,LEN(@Test) - @TempIndex) --使 @Test 取截後的字元串

IF @Test NOT LIKE '%,%' --如果是最後一個,加入列表並退出
BEGIN
INSERT INTO @ArgsTable(Arg)
SELECT @Test

BREAK;
END
END
SELECT * FROM @ArgsTable

B. 這是plsql代碼塊變長數組中一串數字的排序,看不懂求解

1,打開PLSQL Developer客戶端,進入登錄界面

2,輸入用戶名、密碼和資料庫,進行資料庫伺服器

3,很多時候,不知道資料庫的地址,填寫錯誤後,登錄會提示錯誤

4,一般的資料庫伺服器填寫格式為伺服器的IP地址,再加上「/」,再加上資料庫名

5,如果要連接本地的Oracle數據的話,可以直接填寫本地的資料庫名。比如上圖中的aaa就是本地資料庫名。

6,連接成功後,在首頁左中間的部分,就會看到資料庫中的Tables選項,點擊後,會出現資料庫中已經存在的表

C. 在plsql中如何將一個數組使用到sql中的查詢條件中

select
object_name
bulk
collect
into
str_var,首先你這邊select的三個欄位,中間也沒逗號,這語法有問題,在有你如果想把查詢到的結果放在下一個查詢的where條件裡面,為什麼還要用select
xxx
into
xx這樣的寫法,你完全可以直接where
table_name
in(select
a
from
d)這樣子來弄

D. 請教在PLSQL中聲明一個TALBE類型的數組,怎麼查詢其中是否包含某個值

好像沒什麼好辦法,還有一種就是使用臨時表,把數組導到臨時表中然後在臨時表裡查詢,但導入過程也是需要循環。

E. oracle的plsql怎麼儲存數組

TYPE MTBL IS TABLE OF NVARCHAR2(256) INDEX BY BINARY_INTEGER;
這就是定義了一個下標為整數的字元串類型配列的類型。使用的時候
TBL MTBL;TBL就是配列對象。
TYPE MMTBL IS TABLE OF NVARCHAR2(256) INDEX BY BINARY_INTEGER;
TYPE MTBL IS TABLE OF MMTBL IS INDEX BY BINARY_INTEGER;
這種一層套一層的,就類似java里的二維數組。同理往下推。

F. PLSQL中怎樣使用Array

PLSQL中的數組是聲明配列
TYPE MTBL IS TABLE OF NVARCHAR2(256) INDEX BY BINARY_INTEGER;
這就是定義了一個下標為整數的字元串類型配列的類型。使用的時候
TBL MTBL;TBL就是配列對象。
TYPE MMTBL IS TABLE OF NVARCHAR2(256) INDEX BY BINARY_INTEGER;
TYPE MTBL IS TABLE OF MMTBL IS INDEX BY BINARY_INTEGER;
這種一層套一層的,就類似java里的二維數組。同理往下推。

G. 請教pl/sql中怎樣定義和使用數組

數組是在程序設計中,為了處理方便, 把具有相同類型的若干變數按有序的形式組織起來的一種形式。 一維數組的定義 舉個例子 int a[ 3]={1,2,3,4}; 二維數組的定義方法較靈活 可以按行分段也可以連續定義 如 int a[5][3]={ {80,75,92},{61,65,71}...

H. c#向pl/sql傳送數組參數怎麼解決

//C#例
public void Get_PrecereData()
{
OracleConnection connection = null;//Connection
OracleCommand oraCommand = new OracleCommand();
OracleParameter paramId = null;
OracleParameter paramTbl = null;
OracleParameter paramCur = null;
OracleRefCursor pInfoCur = null;
DataSet dtRtn = new DataSet();

//資料庫連接
connection = new OracleConnection("User Id=scott;Password=tiger;Data Source=oracle");
connection.Open();
oraCommand.Connection = connection;
oraCommand.Parameters.Clear();
// 存儲過程 設定
oraCommand.CommandText = "PKG_TEST.PROC_GET_DATA";
oraCommand.CommandType = System.Data.CommandType.StoredProcere;
// 輸入輸出參數設定
// Varchar2型
paramId = oraCommand.Parameters.Add( "I_ID", OracleDbType.Varchar2, ParameterDirection.Input );
// 數組類型參數設定
paramTbl = oraCommand.Parameters.Add( "I_TBL", OracleDbType.Varchar2, ParameterDirection.Input );
// 將CollectionType 設為 PLSQLAssociativeArray
paramTbl.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
//cursor 類型參數設定
paramCur = oraCommand.Parameters.Add("O_CUR", OracleDbType.RefCursor, ParameterDirection.Output );
//設置參數數組的大小
//注意:參數的Value 屬性和ArrayBindSize 屬性必須為元素個數相同的數組,且個數等於參數的Size 屬性
int[] bindSize = new int[10];
string[] tblData = new string[10];
for(int ii = 0; ii < 10; ii++)
{
tblData[ii] = ii.ToString();//數值
bindSize[ii] = 10;//數值的大小
}
//數組參數設定
paramTbl.Value = tblData;
paramTbl.Size = 10;
paramTbl.ArrayBindSize = bindSize;
//存儲過程執行
oraCommand.ExecuteNonQuery();
//out的cursor值的讀取
using(OracleDataAdapter da = new OracleDataAdapter())
{
if(paramCur.Value != System.DBNull.Value)
{
pInfoCur = (OracleRefCursor)paramCur.Value;
da.Fill(dtRtn, pInfoCur);
}
//取得記錄數
Console.WriteLine("the number of record count is {0}", dtRtn.Tables[0].Rows.Count);
}
oraCommand.Dispose();
connection.Close();
connection.Dispose();
}

I. PLSQL 定義含有多個欄位的數組類型變數

可以把用戶的多個信息封裝成一個自定義的屬性。
假設我們的用戶含有:姓名,年齡以及性別屬性
自定義屬性:
TYPE user_info_type IS RECORD(
user_name VARCHAR2(20),
user_age NUMBER(3),
user_sex VARCHAR2(5));1234

然後我們就可以直接使用這個屬性來創建數組了!
TYPE user_info_arr_type IS TABLE OF user_info_type INDEX BY BINARY_INTEGER;
user_info_arr user_info_arr_type;12

完整的測試代碼如下:
-- PLSQL 定義含有多個欄位的數組類型變數
DECLARE TYPE user_info_type IS RECORD(
user_name VARCHAR2(20),
user_age NUMBER(3),
user_sex VARCHAR2(5)); TYPE user_info_arr_type IS TABLE OF user_info_type INDEX BY BINARY_INTEGER;
user_info_arr user_info_arr_type;BEGIN
user_info_arr(0).user_name := '張三';
user_info_arr(0).user_age := 19;
user_info_arr(0).user_sex := '男';
user_info_arr(1).user_name := '李菁菁';
user_info_arr(1).user_age := 23;
user_info_arr(1).user_sex := '女'; FOR i IN 0 .. 1
LOOP
dbms_output.put_line('User Name:' || user_info_arr(i).user_name);
dbms_output.put_line('User Age:' || user_info_arr(i).user_age);
dbms_output.put_line('User Sex:' || user_info_arr(i).user_sex); END LOOP;END;

輸出結果:
User Name:張三
User Age:19
User Sex:男
User Name:李菁菁
User Age:23
User Sex:女
這樣我們就創建了一個含有多個欄位的數組類型變數了!

J. plsql中如何實現這種需求IN相關,數組相關,高分

你聲明一個臨時表, 把需要的欄位加進去,
然後用select語句吧需要包含在IN 裡面的內容用insert 添加到臨時表。
這樣, 這個臨時表相當於一個數據集, 或者一個數組,
你可以簡單而且反復的調用裡面的數據進行比較!

熱點內容
java開發人員 發布:2024-12-30 02:26:17 瀏覽:537
存儲技術參數 發布:2024-12-30 02:20:39 瀏覽:116
安卓系統車機如何不卡 發布:2024-12-30 02:16:29 瀏覽:896
原始版安卓怎麼下載 發布:2024-12-30 02:11:26 瀏覽:66
linux網卡命令行 發布:2024-12-30 02:11:18 瀏覽:182
編程語言網名 發布:2024-12-30 02:09:46 瀏覽:337
蠏子的存儲 發布:2024-12-30 02:06:26 瀏覽:240
什麼配置讓人感覺高深莫測 發布:2024-12-30 02:06:26 瀏覽:848
密碼口是什麼樣的 發布:2024-12-30 02:05:08 瀏覽:566
豐田xrv哪個配置舒適 發布:2024-12-30 02:05:07 瀏覽:105