如题:
declare
b boolean;
begin b := true;
dbms_output.put_line(b);end;
声明了一个布尔变量,经过逻辑运算后,想打印其值,怎么打印?
直接dbms_output.put_line(b);打印是通不过编译的,加to_char(b)或 || '' 也不行千万别告诉我,在IF中打印
if b then
dbms_output.put_line('b=true');
end if;
declare
b boolean;
begin b := true;
dbms_output.put_line(b);end;
声明了一个布尔变量,经过逻辑运算后,想打印其值,怎么打印?
直接dbms_output.put_line(b);打印是通不过编译的,加to_char(b)或 || '' 也不行千万别告诉我,在IF中打印
if b then
dbms_output.put_line('b=true');
end if;
解决方案 »
- oracle连接问题
- oracle问题
- 哪错了,郁闷???
- 高手进来帮忙解决下这个问题,万分感谢
- oracle817的安装问题
- oracel 中如何把数值型32142转换成yyyy-mm-dd的日期格式
- 数据库的字符集采用UTF8,国家字符集采用AL16UTF16,那在客户端注册表的NLS_LANG该如何设置?
- 深圳附近或者说广东省有什么地方可以考RedHat的认证?
- 请问怎样得到表的列数?如何得到某个列的名称?
- 11G控件文件丢失,重建控制文件提示“SP2-0042: 未知命令 "DATAFILE" - 其余行忽略。”
- oracle出错包追踪
- Error while trying to retrieve text for error ora-06413
--dbms_output.put_line();这个是不能打印boolean型的,你只能换一下
--你说的这也是一个不错的思路啊
if b then
dbms_output.put_line('b=true');
end if;--或者:
declare
b boolean;
begin
b := true;
dbms_output.put_line((case when b then 'true' else 'false' end));
end;
SQL> set serveroutput on;
SQL>
SQL> declare
2 a boolean := true;
3 begin
4 if a then
5 dbms_output.put_line('a is true');
6 else
7 dbms_output.put_line('a is false');
8 end if;
9 end;
10 /
a is true
PL/SQL procedure successfully completed
一般都没怎么用到commit work,之前还没怎么听说,落伍了,查看了下,下面的说明不知道行不
COMMIT WORK 语句执行许多与任务的同步执行有关的功能。
ROLLBACK WORK语句“取消”任务同步执行的所有请求。
COMMIT WORK 语句进行下列处理:
• 执行所有由PERFORM ON COMMIT 请求的FORM 例程。
按优先级的升序执行这些例程,顺序由 PERFORM 语句的LEVEL 参数指定。
• 如果请求,触发所有更新任务功能模块。
• 如果请求,触发所有后台任务功能模块。
• 触发数据库提交(依次释放数据库锁定)。
• 清空反转日志。
反转日志包含应用更改前的表格快照。执行反转时,该快照用来将表格复位到原值。
• 关闭所有打开的数据库光标。
• 将所有TEMSE 对象写入永久性文件或数据库。
TEMSE文件是由于性能原因在执行事务期间缓存的临时序列文件。TEMSE文件的示例有假脱机对象或作业日志。
• 将时间片计数器(用于访问工作进程)复位到0。
系统中的时间片计数器限制工作进程中程序运行的时间量。如果程序常常超过时间片限制,则可以使用COMMIT WORK为程序获得更多时间。
但是,要达此目的,必须很容易将处理分为更小单元(全部或没有操作)。然后可以在每个单元之后插入COMMIT WORK 语句。当然处理单元逻辑上必须独立,因为在发生错误时,不能取消前面的单元中所提交的更新。
ROLLBACK WORK“抛弃”当前事务的所有更新:
• 抛弃所有以前用PERFORM ON COMMIT 登录的FORM例程
• 在更新任务队列中将所有以前请求的更新任务功能标记为错误
• 抛弃所有以前请求的后台任务功能
• 从缓冲存储中删除所有TEMSE对象(临时 连续文件,如假脱机对象和作业日志)
• 触发数据库反转操作(依次释放所有数据库锁定)
• 关闭所有打开的数据库光标
2. 以下情况需使用使用COMMIT和ROLLBACK语句。
1) 通过INSERT、UPDATE和MODIFY语句对数据库进行更新事务后。
2) 执行BAPI处理后。一般使用BAPI函数BAPI_TRANSACTION_COMMIT(内含COMMIT语句) 。
3. 如果要保证数据库中当前所作的更改立即被确认,那么就必须使用COMMIT WORK 语句结束LUW。COMMIT WORK 在程序代码中标记了 LUW(几个作业联系在一起形成作业的逻辑单元) 结束并启动更新任务。在COMMIT WORK 语句以后,对数据库所作的所有更改都不能再取消。但是,如果在LUW 中出现了错误,就必须取消已经执行的部分。这意味着当前没有任何插入的行能永久地保存在数据库中。要撤销当前LUW 对数据库的更改,请使用ROLLBACK WORK,它将取消前一次数据库提交后的所有更改。
4. COMMIT WORK [AND WAIT(同步)].
如果使用AND WAIT选项,那么在程序继续执行以前,它要等到更新任务的结束。如果更新是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功的存储所作的更改。
ROLLBACK WORK.
如果对更改的取消是成功的,SY-SUBRC 就设置为0。如果 SY-SUBRC 返回一个非零值,就没有成功地取消所作的更改