精华内容
下载资源
问答
  • 匿名块

    2012-08-21 15:45:18
    匿名块的构成  Sql代码  DECLARE  /* 声明部分 */    BEGIN  /* 执行部分 */    EXCEPTION    /* 异常处理部分 */  END;  DECLARE  在匿名块内声明变量。  ...
    匿名块的构成 
    Sql代码  收藏代码
    1. DECLARE  
    2. /* 声明部分 */  
    3.   
    4. BEGIN  
    5. /* 执行部分 */  
    6.   
    7. EXCEPTION  
    8.   
    9. /* 异常处理部分 */  
    10. END;  


    DECLARE 
    在匿名块内声明变量。 
    如果无需声明变量,则可以省略DECLARE。 

    BEGIN 
    编写SQL语句、控制逻辑等可执行的部分。 
    此部分是必需的。 

    EXCEPTION 
    为了应对程序内可能发生的异常,在此进行错误处理。 
    如果无需错误处理,则可以省略EXCEPTION。 

    END 
    表示匿名块的结束。 

    示例1 包含所有部分的匿名块 
    Sql代码  收藏代码
    1. declare  
    2.    
    3.  dname varchar2(10);  
    4.    
    5. begin  
    6.    
    7.  for dept_rec in (select dept_id,dept_name from dept) loop  
    8.   dname := dept_rec.dept_name;  
    9.   dbms_output.put_line(dname);  
    10.  end loop;  
    11.    
    12. exception  
    13.    
    14.  when others then  
    15.  dbms_output.put_line('出错了!!');  
    16.    
    17. end;  


    示例2 只包含执行部分的匿名块 
    Sql代码  收藏代码
    1. begin  
    2.    
    3.  for dept_rec in (select dept_id,dept_name from dept) loop  
    4.   dbms_output.put_line(dept_rec.dept_name);  
    5.  end loop;  
    6.    
    7. end;  

    展开全文
  • 名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的块定义的,删除后也无需再清理。匿名块还可以用来加密图纸,一些工具和软件将...

    有网友说图中的一个动态块复制后无法编辑了,结果发现图块的名字变成了带*U7;我们在一些建筑、电气等专业图纸中也经常会看到这样的图块,图块名称是*Uxxx,如下图所示。

    e0388b20aea8a51ee562e863dff02beb.png

    名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的块定义的,删除后也无需再清理。匿名块还可以用来加密图纸,一些工具和软件将图形做成匿名的多重插入块,这种图块无法双击直接编辑,连炸开都不行。

    CAD创建图块的方法

    CAD图块编辑的几种方式

    CAD创建图块时需要注意的问题

    CAD分解(炸开X)需要了解的知识

    CAD中用多重插入块加密的CAD图纸如何分解?

    匿名块是如何创建的?有什么特点?

    匿名块是怎么创建的呢?这种图块有什么作用?如果我想编辑这种图块怎么办呢?

    匿名块用常规的CAD命令是无法创建的,通常是用CAD二次开发程序创建的,也就是一些专业软件或工具创建的。其实CAD中一些标准对象,例如标注、填充、高版本的阵列对象,也是一种类似匿名块的对象。

    我从网上找到一段比较专业的解释:

    有些专业软件利用匿名块来取代自定义对象,好处是不出现代理对话框。块中的某些属性放在扩展数据中,对块可以进行参数化操作,原理就是提取块的扩展数据后,删除旧块,利用新改的数据生成新块。由于使用的是匿名块,所以不需要注意块的名称,也不会在块列表中出现软件定义的块。

    这个比较难理解,说的简单一点,比如上面图中的窗户只有一个原始的块文件,但在图中这种形式的门窗可能会多个不同的尺寸,如果用普通块插入的话,改一个门窗的尺寸,其他门窗就会跟随修改,但用匿名块,每个图块都是独立的,就不会出现这个问题了。

    除此以外,匿名块本身不会在图中保留块定义,直接删除即可,无需清理;两张图中看着同名的匿名块,比如名字看上去都是*U99,但将一张图中的*U99复制到另一张图后,图块名会自动更改为一个不重复的名字,例如*U163,也就不会存在同名块定义相互覆盖的情况。

    动态块可以通过参数动作调整成不同的状态,而这每种状态其实也是用匿名块的形式保留下来的,我们用LI查询动态块,可以看到除了图块名外,还能看到一个带*号的名字,如下图所示。

    ff8d72495665912213dcc290983412e7.png

    但网友图纸中的动态块复制后会丢失块名变成匿名块,不知道是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"

    修改后效果如下图所示:

    64af97a368b31ba18df1e0b3c8ed1029.png

    变成普通块后,双击就可以编辑图块了,如下图所示。

    7b1191b9f9adb61aca1a8a735cc40c20.png

    文章来源于网络

    展开全文
  • 看代码吧~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中执行块,点击图示按钮:

    20210107125135783.jpg

    注意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可以一个块在另一个块的主体中。一个块嵌入在另一个块中称为子块,包含子块的块称为外部块。

    20210107125135785.jpg

    子块用于组织语句,这样大块能被分为更小和更多逻辑子块。子块的变量的名称可以与外部块变量名称同名,虽然这在实践中不建议。当在子块中声明一个与外部变量同名的变量,外部变量在子块中被隐藏。如果需要访问外部块的变量,可以使用块标签作为变量的限定符,如下面示例:

    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开发者。如有错误或未考虑完全的地方,望不吝赐教。

    展开全文
  • 看代码吧~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中执行块,点击图示按钮:

    35edc0e836d50bf967cb75fffaa04b95.png

    注意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可以一个块在另一个块的主体中。一个块嵌入在另一个块中称为子块,包含子块的块称为外部块。

    95d77d688c893198031edecd41529f53.png

    子块用于组织语句,这样大块能被分为更小和更多逻辑子块。子块的变量的名称可以与外部块变量名称同名,虽然这在实践中不建议。当在子块中声明一个与外部变量同名的变量,外部变量在子块中被隐藏。如果需要访问外部块的变量,可以使用块标签作为变量的限定符,如下面示例:

    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语句可以执行匿名块。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    展开全文
  • 游离块(匿名块,初始化块) 游离块不论在构造器前还是在构造器后,都会正在执行构造器之前就执行 如果游离块内调用其他方法的话,不论它在方法前还是方法后,都会先执行游离块 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
  • 在使用CAD软件绘制图纸的过程中,不同的人...图块名称是*Uxxx,如下图所示:名字带*号的图块被被称为匿名块,也可以叫无名块的,这种图块双击时无法编辑,在插入图块对话框中也看不到这些图块。匿名块是没有关联的...
  • plsql匿名块

    千次阅读 2017-08-05 19:15:12
    PL/SQL匿名块详解 摘要: PL/SQL是Oracle下的脚本开发语言,是为了解决数据下一些复杂的应用而设计的。一些复杂的应用,仅靠一条SQL语句并不能完成,为了解决这个问题,各个数据库产品都设计了自己的脚本编程...
  • {"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 和 ...
  • PL/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匿名块 第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:54
    PostgreSQL数据库中匿名块的写法
  • 匿名块锁等待

    2013-10-25 11:53:34
    1. 在匿名块中如果执行插入,删除,更新等操作后,一定要记得提交或回滚操作,不然其他人在别的地方如果也执行插入,删除,更新等操作时,刚好与你执行的操作记录相同,则会发生锁等待 DECLARE  cot NUMBER; BEGIN  DELETE...
  • Oracle匿名块中引入过程 * 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:=&amp;请输入第二个数:;  dbms_output.put_line('商:'||v_a/v_b);  dbms_output.put_...
  • 1.匿名块的编写 块的结构和变量的声明   declare 变量声明部分; begin 逻辑处理执行部分; end; /   便于维护(模块化的SQL) 提高数据库的安全性(把SQL原子操作封装起来了,更安全) 提高性能(第一...
  • 匿名块好像不支持块内实体的修改, 块内实体的位置移动等是不可以的,好多东西不能设置, 这个需要再研究研究 转载于:https://www.cnblogs.com/houlinbo/archive/2009/09/11/1564774.html...
  • PLSQL 匿名块 变量 基本类型 封装类型 封装类型:列类型 行类型 记录类型 表类型 匿名块 语法结构 declare -- 存放变量 begin -- 业务执行 exception -- 抛出异常后处理 end; 示例 让用户输入员工编号 , 在...
  • 静态块和匿名块

    2019-12-28 16:01:57
  • -匿名块 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 匿名块名改变 转载于:https://www.cnblogs.com/houlinbo/archive/2009/11/11/1601296.html
  • Oacle匿名块

    2018-10-09 18:02:34
    因系统历史遗留故障,导致有一张千万级别的表需要删除大概60w的错误数据,计划用批处理语句来循环删除,最近越发感到越来越菜,因此将这个批处理语句记录下来,以供日后温习。只作为处理,没有声明部分。...
  • 1.匿名块: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); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,277
精华内容 1,710
关键字:

匿名块