-
匿名块
2012-08-21 15:45:18匿名块的构成 Sql代码 DECLARE /* 声明部分 */ BEGIN /* 执行部分 */ EXCEPTION /* 异常处理部分 */ END; DECLARE 在匿名块内声明变量。 ...匿名块的构成
- DECLARE
- /* 声明部分 */
- BEGIN
- /* 执行部分 */
- EXCEPTION
- /* 异常处理部分 */
- END;
DECLARE
在匿名块内声明变量。
如果无需声明变量,则可以省略DECLARE。
BEGIN
编写SQL语句、控制逻辑等可执行的部分。
此部分是必需的。
EXCEPTION
为了应对程序内可能发生的异常,在此进行错误处理。
如果无需错误处理,则可以省略EXCEPTION。
END
表示匿名块的结束。
示例1 包含所有部分的匿名块- declare
- dname varchar2(10);
- begin
- for dept_rec in (select dept_id,dept_name from dept) loop
- dname := dept_rec.dept_name;
- dbms_output.put_line(dname);
- end loop;
- exception
- when others then
- dbms_output.put_line('出错了!!');
- end;
示例2 只包含执行部分的匿名块- begin
- for dept_rec in (select dept_id,dept_name from dept) loop
- dbms_output.put_line(dept_rec.dept_name);
- end loop;
- end;
-
多重引用块分解程序_什么是CAD的匿名块?如何将匿名块变成普通块?
2021-01-14 18:47:03名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的块定义的,删除后也无需再清理。匿名块还可以用来加密图纸,一些工具和软件将...有网友说图中的一个动态块复制后无法编辑了,结果发现图块的名字变成了带*U7;我们在一些建筑、电气等专业图纸中也经常会看到这样的图块,图块名称是*Uxxx,如下图所示。
名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的块定义的,删除后也无需再清理。匿名块还可以用来加密图纸,一些工具和软件将图形做成匿名的多重插入块,这种图块无法双击直接编辑,连炸开都不行。
CAD创建图块的方法
CAD图块编辑的几种方式
CAD创建图块时需要注意的问题
CAD分解(炸开X)需要了解的知识
CAD中用多重插入块加密的CAD图纸如何分解?
匿名块是如何创建的?有什么特点?
匿名块是怎么创建的呢?这种图块有什么作用?如果我想编辑这种图块怎么办呢?
匿名块用常规的CAD命令是无法创建的,通常是用CAD二次开发程序创建的,也就是一些专业软件或工具创建的。其实CAD中一些标准对象,例如标注、填充、高版本的阵列对象,也是一种类似匿名块的对象。
我从网上找到一段比较专业的解释:
有些专业软件利用匿名块来取代自定义对象,好处是不出现代理对话框。块中的某些属性放在扩展数据中,对块可以进行参数化操作,原理就是提取块的扩展数据后,删除旧块,利用新改的数据生成新块。由于使用的是匿名块,所以不需要注意块的名称,也不会在块列表中出现软件定义的块。
这个比较难理解,说的简单一点,比如上面图中的窗户只有一个原始的块文件,但在图中这种形式的门窗可能会多个不同的尺寸,如果用普通块插入的话,改一个门窗的尺寸,其他门窗就会跟随修改,但用匿名块,每个图块都是独立的,就不会出现这个问题了。
除此以外,匿名块本身不会在图中保留块定义,直接删除即可,无需清理;两张图中看着同名的匿名块,比如名字看上去都是*U99,但将一张图中的*U99复制到另一张图后,图块名会自动更改为一个不重复的名字,例如*U163,也就不会存在同名块定义相互覆盖的情况。
动态块可以通过参数动作调整成不同的状态,而这每种状态其实也是用匿名块的形式保留下来的,我们用LI查询动态块,可以看到除了图块名外,还能看到一个带*号的名字,如下图所示。
但网友图纸中的动态块复制后会丢失块名变成匿名块,不知道是CAD的BUG,还是用了什么插件,没有找到原因。
如何将匿名块变成普通快?
匿名块无法双击用块编辑器或用在位编辑(REFEDIT)编辑,如果想编辑匿名块,必须炸开,比较麻烦。如果想按普通块那样进行编辑,就需要将匿名块转换成有名字的图块。在CAD内部没有这样的命令,我找到一个LSP程序,可以将匿名块转换为普通块,如果需要的话,可以到网盘里取一下。
下载地址:http://pan.baidu.com/s/1slJ7dAd
使用方法如下:
1、输入AP命令,加载下载的renblock.lsp插件。
2、加载成功后,输入CCC命令,选择要改名的匿名块。然后输入新的块名。命令执行时命令行提示如下:
命令:AP APPLOAD 已成功加载 renblock.lsp
命令:
CHANGE-BLOCK-NAME
命令:CCC
请选择块:
请输入新块名<字符规范,不要重名>:WINDOWS01
这是一个匿名块.
块名已经更改成"WINDOWS01"
修改后效果如下图所示:
变成普通块后,双击就可以编辑图块了,如下图所示。
文章来源于网络
-
mysql 匿名块_PostgreSQL数据库中匿名块的写法实例
2021-01-19 04:32:08看代码吧~test=# DO $$DECLARE i record;test$# BEGINtest$# FOR i IN 1..10test$# LOOPtest$# execute 'select loop_insert(1)';...DOtest=#看匿名块的执行效果:test=# select count(*) from lineitem...看代码吧~
test=# DO $$DECLARE i record;
test$# BEGIN
test$# FOR i IN 1..10
test$# LOOP
test$# execute 'select loop_insert(1)';
test$# END LOOP;
test$# END$$;
DO
test=#
看匿名块的执行效果:
test=# select count(*) from lineitem;
count
-------
7000
(1 row)
test=# select count(*) from lineitem;
count
-------
17000 ------------->>>>匿名块插入了10000条记录.
(1 row)
test=#
补充:PostgreSql 的PL/pgSQL 块结构 (在pgAdmin查询工具中如何执行语句块)
PostgreSql 的PL/pgSQL 块结构
本文我们学习PL/pgSQL结构块,包括如何写结构块和执行结构块。
什么是结构块
PL/pgSQL是结构块语言,因此,PL/pgSQL函数或过程是通过结构块进行组织。完整结构块的语法如下:
[ <> ]
[ DECLARE
declarations ]
BEGIN
statements;
...
END [ label ];
详细说明如下:
块有两部分组成:声明部分和主体部分。声明部分是可选的,而主体部分是必须的。块在end关键字后面使用分号(;)表示结束。
块可以有个可选的标签在开始和结尾处。如果你想在块主体中使用exit语句或限定块中声明的变量名称时,需要使用块标签。
主体部分是编写代码的地方,每条语句需要使用分号结束。
PL/pgSQL 块结构示例
下面示例描述一个简单块结构,一般称为匿名块:
DO $$
<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE 'The current value of counter is %', counter;
END first_block $$;
运行结果:
NOTICE: The current value of counter is 1
从pgAdmin中执行块,点击图示按钮:
注意DO语句不属于块结构。它用于执行匿名块。PostgreSQL 在9.0版本中引入DO语句。
在声明部分定义变量counter并设置为0.
在主体部分,是counter值加1,通过RAISE NOTICE语句输出其值。
first_block 标签仅为了演示需要,本例中没有啥意义。
** 什么是双 ($$) 符号?**
($$) 符号 是单引号(')的替代符号。开发PL/pgSQL 时,无论是函数或过程,必须把主体部分放在一个字符串中。因此必须对主体部分的单引号进行转义表示:
DO
'<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE ''The current value of counter is %'', counter;
END first_block';
使用($$) 符号可以避免引号问题。也可以在$之间使用标识,如之间使用标识,如之间使用标识,如function$ , procedureprocedureprocedure.
PL/pgSQL 子结构块
PL/pgSQL可以一个块在另一个块的主体中。一个块嵌入在另一个块中称为子块,包含子块的块称为外部块。
子块用于组织语句,这样大块能被分为更小和更多逻辑子块。子块的变量的名称可以与外部块变量名称同名,虽然这在实践中不建议。当在子块中声明一个与外部变量同名的变量,外部变量在子块中被隐藏。如果需要访问外部块的变量,可以使用块标签作为变量的限定符,如下面示例:
DO $$
<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE 'The current value of counter is %', counter;
DECLARE
counter integer := 0;
BEGIN
counter := counter + 10;
RAISE NOTICE 'The current value of counter in the subblock is %', counter;
RAISE NOTICE 'The current value of counter in the outer block is %', outer_block.counter;
END;
RAISE NOTICE 'The current value of counter in the outer block is %', counter;
执行结果如下:
NOTICE: The current value of counter is 1
NOTICE: The current value of counter in the subblock is 10
NOTICE: The current value of counter in the outer block is 1
NOTICE: The current value of counter in the outer block is 1
首先,在外部块中声明变量counter。
接着在子块中也声明了一个同名变量。
在进入子块之前,变量的值为1。在子块中,我们给变量counter值加10,然后打印出来。注意,这个改变仅影响子块中counter变量。
然后,我们通过标签限定符引用外部变量:outer_block.counter
最后,我们打印外部块变量,其值保持不变。
总结
本文我们学习PL/pgSQL块结构,通过DO语句可以执行匿名块。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持WEB开发者。如有错误或未考虑完全的地方,望不吝赐教。
-
mysql中编写匿名块_PostgreSQL数据库中匿名块的写法实例
2021-01-21 17:42:47看代码吧~test=# DO $$DECLARE i record;test$# BEGINtest$# FOR i IN 1..10test$# LOOPtest$# execute 'select loop_insert(1)';...DOtest=#看匿名块的执行效果:test=# select count(*) from lineitem...看代码吧~
test=# DO $$DECLARE i record;
test$# BEGIN
test$# FOR i IN 1..10
test$# LOOP
test$# execute 'select loop_insert(1)';
test$# END LOOP;
test$# END$$;
DO
test=#
看匿名块的执行效果:
test=# select count(*) from lineitem;
count
-------
7000
(1 row)
test=# select count(*) from lineitem;
count
-------
17000 ------------->>>>匿名块插入了10000条记录.
(1 row)
test=#
补充:PostgreSql 的PL/pgSQL 块结构 (在pgAdmin查询工具中如何执行语句块)
PostgreSql 的PL/pgSQL 块结构
本文我们学习PL/pgSQL结构块,包括如何写结构块和执行结构块。
什么是结构块
PL/pgSQL是结构块语言,因此,PL/pgSQL函数或过程是通过结构块进行组织。完整结构块的语法如下:
[ <> ]
[ DECLARE
declarations ]
BEGIN
statements;
...
END [ label ];
详细说明如下:
块有两部分组成:声明部分和主体部分。声明部分是可选的,而主体部分是必须的。块在end关键字后面使用分号(;)表示结束。
块可以有个可选的标签在开始和结尾处。如果你想在块主体中使用exit语句或限定块中声明的变量名称时,需要使用块标签。
主体部分是编写代码的地方,每条语句需要使用分号结束。
PL/pgSQL 块结构示例
下面示例描述一个简单块结构,一般称为匿名块:
DO $$
<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE 'The current value of counter is %', counter;
END first_block $$;
运行结果:
NOTICE: The current value of counter is 1
从pgAdmin中执行块,点击图示按钮:
注意DO语句不属于块结构。它用于执行匿名块。PostgreSQL 在9.0版本中引入DO语句。
在声明部分定义变量counter并设置为0.
在主体部分,是counter值加1,通过RAISE NOTICE语句输出其值。
first_block 标签仅为了演示需要,本例中没有啥意义。
** 什么是双 ($$) 符号?**
($$) 符号 是单引号(')的替代符号。开发PL/pgSQL 时,无论是函数或过程,必须把主体部分放在一个字符串中。因此必须对主体部分的单引号进行转义表示:
DO
'<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE ''The current value of counter is %'', counter;
END first_block';
使用($$) 符号可以避免引号问题。也可以在$之间使用标识,如之间使用标识,如之间使用标识,如function$ , procedureprocedureprocedure.
PL/pgSQL 子结构块
PL/pgSQL可以一个块在另一个块的主体中。一个块嵌入在另一个块中称为子块,包含子块的块称为外部块。
子块用于组织语句,这样大块能被分为更小和更多逻辑子块。子块的变量的名称可以与外部块变量名称同名,虽然这在实践中不建议。当在子块中声明一个与外部变量同名的变量,外部变量在子块中被隐藏。如果需要访问外部块的变量,可以使用块标签作为变量的限定符,如下面示例:
DO $$
<>
DECLARE
counter integer := 0;
BEGIN
counter := counter + 1;
RAISE NOTICE 'The current value of counter is %', counter;
DECLARE
counter integer := 0;
BEGIN
counter := counter + 10;
RAISE NOTICE 'The current value of counter in the subblock is %', counter;
RAISE NOTICE 'The current value of counter in the outer block is %', outer_block.counter;
END;
RAISE NOTICE 'The current value of counter in the outer block is %', counter;
执行结果如下:
NOTICE: The current value of counter is 1
NOTICE: The current value of counter in the subblock is 10
NOTICE: The current value of counter in the outer block is 1
NOTICE: The current value of counter in the outer block is 1
首先,在外部块中声明变量counter。
接着在子块中也声明了一个同名变量。
在进入子块之前,变量的值为1。在子块中,我们给变量counter值加10,然后打印出来。注意,这个改变仅影响子块中counter变量。
然后,我们通过标签限定符引用外部变量:outer_block.counter
最后,我们打印外部块变量,其值保持不变。
总结
本文我们学习PL/pgSQL块结构,通过DO语句可以执行匿名块。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
-
游离块(匿名块,初始化块)
2020-06-12 21:13:53游离块(匿名块,初始化块) 游离块不论在构造器前还是在构造器后,都会正在执行构造器之前就执行 如果游离块内调用其他方法的话,不论它在方法前还是方法后,都会先执行游离块 public class ylk { //游离块 {... -
Oracle匿名块
2017-05-27 09:49:14--输出编号3500的员工的姓名和职务 ...--匿名块 --1 declare v_ename varchar2(20); v_job varchar2(20); begin select ename,job into v_ename,v_job from emp; exception when others then select -
mysql中编写匿名块_CAD软件中的匿名块怎么创建/编辑?有什么作用?
2021-01-28 00:38:53在使用CAD软件绘制图纸的过程中,不同的人...图块名称是*Uxxx,如下图所示:名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的... -
plsql匿名块
2017-08-05 19:15:12PL/SQL匿名块详解 摘要: PL/SQL是Oracle下的脚本开发语言,是为了解决数据下一些复杂的应用而设计的。一些复杂的应用,仅靠一条SQL语句并不能完成,为了解决这个问题,各个数据库产品都设计了自己的脚本编程... -
mysql 匿名块_数据库匿名块
2021-01-19 04:32:08{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行... -
JAVA 静态匿名块
2019-04-24 16:19:27静态匿名块(当前类被装载时执行一次) 一个类不管创建多少对象,类只会被装载一次 注意:static所定义的属性和方法,会在一个方法区里开辟空间存储,一个类里一个static变量只开辟一片空间 方法区里存储static 和 ... -
Oracle 匿名块和命名块 存储过程 函数 包 触发器
2018-12-04 20:43:22PL/SQL块分类(匿名块、命名块、子程序、触发器) 2016年07月28日 11:34:15 王涛WantTao 阅读数:2512更多 个人分类: ORACLE | PL/SQL 版权声明:本文为博主原创文章,未经博主允许不得转载。 ... -
匿名块已完成
2015-01-19 11:22:38很简单,最前面加上下面这句 set serveroutput on; PL/SQL Developer中不用此句也可以,但是Oracle Sql Developer需要此句,不然只会出现"匿名块已完成 -
Oracle实验三 PL/SQL匿名块
2021-01-02 21:59:09Oracle实验三 PL/SQL匿名块 第1关:PL/SQL匿名块1 1、打印001号学生的姓名和年龄。打印结果格式(忽略行标号,其中冒号为中文状态下的冒号): 001号同学的姓名:查询出的姓名 001号同学的年龄:查询出的年龄 ... -
Oracle之匿名块
2014-08-07 21:35:06--PL/SQL基础 Procedure Language & Structured Query Language --PL/SQL的基本组成 --声明部分 DECLARE ... --(匿名块)从键盘接收2个数,计算之和 DECLARE num1 NUMBER; num2 NUMBER; ca -
PostgreSQL数据库中匿名块的写法
2017-03-07 18:10:54PostgreSQL数据库中匿名块的写法 -
匿名块锁等待
2013-10-25 11:53:341. 在匿名块中如果执行插入,删除,更新等操作后,一定要记得提交或回滚操作,不然其他人在别的地方如果也执行插入,删除,更新等操作时,刚好与你执行的操作记录相同,则会发生锁等待 DECLARE cot NUMBER; BEGIN DELETE... -
Oracle匿名块中使用子过程
2019-01-11 10:49:09Oracle匿名块中引入过程 * Note:按模式分别获取表及字段 * 1、子过程:获取所有表 * 2、子过程:获取表的所有字段 * 3、组成insert into select 语句 -
plsql 匿名块
2009-09-05 23:50:02写的一个匿名块: [code="sql"] declare v_num1 number := 1; v_num2 number := 2; v_string1 varchar2(50) := 'Hello World!'; v_string2 varchar2(50) := '--This message brou... -
ORACLE——匿名块、变量、if
2018-07-16 15:55:38--pl/sql匿名块 --匿名块(声明、执行体、异常处理) declare v_a integer; v_b integer; begin v_a:=10; v_b:=&请输入第二个数:; dbms_output.put_line('商:'||v_a/v_b); dbms_output.put_... -
匿名块、变量和简单的数据类型
2018-09-30 10:46:241.匿名块的编写 块的结构和变量的声明 declare 变量声明部分; begin 逻辑处理执行部分; end; / 便于维护(模块化的SQL) 提高数据库的安全性(把SQL原子操作封装起来了,更安全) 提高性能(第一... -
匿名块 块内实体的修改
2009-09-11 14:48:00匿名块好像不支持块内实体的修改, 块内实体的位置移动等是不可以的,好多东西不能设置, 这个需要再研究研究 转载于:https://www.cnblogs.com/houlinbo/archive/2009/09/11/1564774.html... -
PLSQL基础 匿名块,变量,类型和条件分支
2020-09-23 02:05:39PLSQL 匿名块 变量 基本类型 封装类型 封装类型:列类型 行类型 记录类型 表类型 匿名块 语法结构 declare -- 存放变量 begin -- 业务执行 exception -- 抛出异常后处理 end; 示例 让用户输入员工编号 , 在... -
静态块和匿名块
2019-12-28 16:01:57 -
PL/SQL块分类(匿名块、命名块、子程序、触发器)
2016-07-28 11:34:15-匿名块 DECLARE V_NAME VARCHAR2(5); BEGIN SELECT NAME INTO V_NAME WHERE AGE=100; DBMS_OUTPUT.PUT_LINE(V_NAME); EXCEPTION WHER NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('未查到到任何数据'); END; -
sql 匿名块
2019-05-15 16:01:32[DECLARE] --变量声明 BEGIN --程序语句 [EXCEPTION] --异常处理 END; -
用CAD复制命令复制 匿名块名不变, 用Ctrl+C Ctrl+V 匿名块名改变
2009-11-11 20:42:00用CAD复制命令复制 匿名块名不变, 用Ctrl+C Ctrl+V 匿名块名改变 转载于:https://www.cnblogs.com/houlinbo/archive/2009/11/11/1601296.html -
Oacle匿名块
2018-10-09 18:02:34因系统历史遗留故障,导致有一张千万级别的表需要删除大概60w的错误数据,计划用批处理语句来循环删除,最近越发感到越来越菜,因此将这个批处理语句记录下来,以供日后温习。只作为处理,没有声明部分。... -
oracle中块(匿名块、命名块、子程序、触发器)的使用
2014-11-07 17:58:161.匿名块:declarev_avgsal number(6,2);beginselect avg(sal) into v_avgsal from emp where deptno=&no;dbms_output.put_line('平均工资:'||v_avgsal);end;2.命名块:<<outer>>declarev_deptno ... -
plpgsql 匿名块
2017-12-25 17:09:57有时需要手动执行一段逻辑,又不想写成函数,那么就用下面格式吧。DO LANGUAGE plpgsql $$ DECLARE lv_var varchar; BEGIN select * into lv_var from public.test_forupdate_commit(1); ...