当前位置:首页 » 编程语言 » 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 添加到临时表。
这样, 这个临时表相当于一个数据集, 或者一个数组,
你可以简单而且反复的调用里面的数据进行比较!

热点内容
微信访问网址 发布:2025-01-02 00:14:27 浏览:862
运算和存储 发布:2025-01-02 00:12:57 浏览:529
des加密mfc 发布:2025-01-02 00:12:20 浏览:917
甘肃电信的dns服务器地址是什么 发布:2025-01-02 00:03:01 浏览:966
压缩磁盘碎片 发布:2025-01-01 23:54:56 浏览:961
mc服务器怎么修改背包物品 发布:2025-01-01 23:48:10 浏览:260
php二级域名session 发布:2025-01-01 23:32:23 浏览:455
无意义算法 发布:2025-01-01 23:32:18 浏览:677
安卓本哪个最便宜 发布:2025-01-01 23:31:36 浏览:884
vsc语言编译器安装 发布:2025-01-01 23:25:54 浏览:932