‘壹’ 使用plsqldev调试时,如何查看结构体变量的值
dev c++调试时查看变量的值的方法:
1、 开始调试后,在图示区域按右键,选择"添加监测(Add Watch)";或者直接按 F4;
2、在弹出窗口中输入用户想查看的变量名,然后按确定(OK),就可以看到该变量的值;
3、用鼠标选择源文件中的变量名,然后按 F4 也可以查看变量的值,该变量会出现在左边的监测列表中;
4、如果用户在环境选项(Environment Options)中选择了"通过鼠标监测变量(Watch variable under mouse)",用鼠标指向您想要查看的变量一段时间,该变量也会被添加到监测列表中。
重要提示:
1). 当想查看指针指向的变量的值的时候,按 F4,然后输入星号及指针的名字(如 *pointer)。
如果没加 *,看到的将会是一个地址,也就是指针的值。
2). 有时,调试器(Debugger)可能不知道某个指针的类型,从而不能显示该指针指向的变量的值。
此时,我们需要手动输入该指针的类型。按 F4 后,以 *(type *)pointer 形式输入。例如,
*(int *)pointer。
‘贰’ 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:女
这样我们就创建了一个含有多个字段的数组类型变量了!
‘叁’ 在PL/SQL中变量的赋值所用的“:=”与“=”有什么区别
一个是赋值,一个是比较值
‘肆’ plsql中调试时,如果查看long变量中的内容
首先你的用户得有存储过程的debug执行权限。然后在plsql的左侧菜单中找到你的调试的package或function,打开后plsql右边窗口是分两列的,第一列是存储过程的方法名,第二列窗口是存储过程的具体源代码。
在第一列的方法名上,右键可以看到有debug选项,点击bug可以单独对此方法进行调试,你可以在源代码设置断点,跟eclipse断点功能近似
实在不行可以通过dbms_output.put_line();输出变量值
‘伍’ PLSQL中,select 变量 from al 怎么写
PLSQL中,select 变量 from al 怎么写
declare
m_sql_string varchar(1024);
m_month date:=sysdate;
begin
m_month:=add_months(m_month,-1);
m_sql_string:='insert into yc_oper_log select ''bill'',sysdate,m_month from al';
execute immediate m_sql_string;
commit;
end;
ORA-00904: "M_MONTH": 无效的标识符
ORA-06512: 在line 8
SQL>
我用的是动态SQL。
‘陆’ plsql 字符串中怎么用变量
在变量名两边加上单引号就可以了。tbs_array tbs_type_array:=tbs_type_array('tbs1','tbs2');
‘柒’ plsql中声明变量时可以指定哪种类型的约束
主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。
唯一约束(Unique constraint):要求该列唯一,允许为空,但只能出现一个空值。
检查约束(Check constraint):某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。
默认约束(Default constraint):某列的默认值,如在数据库里有一项数据很多重复,可以设为默认值。
外键约束(Foreign Key constraint):用于在两个表之间建立关系,需要指定引用主表的哪一列。
‘捌’ plsqlbeginend中可以定义变量吗
plsqlbeginend中可以定义变量。根据相关公开信息显示变量类型data_type决定了其中存储的数据类型。如果变量只能存储一个单独的值,则该变量称为标量变量。如果变量可以粗出多个值(如表中的一行记录),则该变量称为符合类型的变量。标量量变量所使用的数据类型包括字符、数字、日期和布尔类型等。
‘玖’ 在plsql中,使用绑定变量的方法除了动态sql外,还有别的方式吗
plsql里面直接使用变量也是使用了绑定变量的。
比如在存储过程中使用
select empno from emp where empno=p_empno ;
其实使用的也是绑定变量。
在内存中是类似这样的格式:
SELECT EMPNO FROM EMP WHERE EMPNO=:B1
当然这也和数据库参数plsql_optimize_level,但是一般都不会关注。
‘拾’ 在PLSQL包种的全局变量应该怎么去用么,尽量少用吗
在一个函数里面定义的变量就是局部变量,它的作用只在这个函数内部,其他的函数想要调用它就调用不到。 在函数之外定义的变量就是全局变量,函数都可以调用该变量,这样就不用每一个函数都得定义一遍该变量。