当前位置: 首页 > wzjs >正文

建立网站的主要方式做烘培的网站

建立网站的主要方式,做烘培的网站,中国建筑图片,东莞大岭山匿名块是学习和测试PL/SQL代码的强大工具,特别适合执行一次性任务或快速验证业务逻辑。 目录 一、匿名块中的DML操作 1. INSERT 示例 2. UPDATE 示例 3. DELETE 示例 二、匿名块中的动态SQL 1. EXECUTE IMMEDIATE 2. 动态游标--下篇文章会具体展开详细分享该…

匿名块是学习和测试PL/SQL代码的强大工具,特别适合执行一次性任务或快速验证业务逻辑。

目录

一、匿名块中的DML操作

1. INSERT 示例

2. UPDATE 示例

3. DELETE 示例

二、匿名块中的动态SQL

1. EXECUTE IMMEDIATE

2. 动态游标--下篇文章会具体展开详细分享该部分内容

三、匿名块的实际应用场景

1. 数据迁移

2. 批量数据处理

3. 数据库对象检查

四、匿名块使用技巧

1. 启用DBMS_OUTPUT:

2. 调试输出:

3. 计时执行:

4. 使用绑定变量:

5. 临时禁用代码:/*...*/


一、匿名块中的DML操作

1. INSERT 示例

DECLAREv_emp_id NUMBER := 1001;
BEGININSERT INTO employees (employee_id, last_name, job_id, hire_date)VALUES (v_emp_id, 'Smith', 'IT_PROG', SYSDATE);COMMIT;DBMS_OUTPUT.PUT_LINE('成功插入员工: ' || v_emp_id);
EXCEPTIONWHEN DUP_VAL_ON_INDEX THENDBMS_OUTPUT.PUT_LINE('错误: 员工ID已存在');ROLLBACK;
END;
/

2. UPDATE 示例

DECLAREv_emp_id NUMBER := 100;v_rows_updated NUMBER;
BEGINUPDATE employeesSET salary = salary * 1.1WHERE employee_id = v_emp_id;v_rows_updated := SQL%ROWCOUNT;IF v_rows_updated = 0 THENDBMS_OUTPUT.PUT_LINE('未找到员工记录');ELSECOMMIT;DBMS_OUTPUT.PUT_LINE('成功更新 ' || v_rows_updated || ' 条记录');END IF;
EXCEPTIONWHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('更新失败: ' || SQLERRM);ROLLBACK;
END;
/

3. DELETE 示例

DECLAREv_dept_id NUMBER := 10;v_rows_deleted NUMBER;
BEGINDELETE FROM employeesWHERE department_id = v_dept_id;v_rows_deleted := SQL%ROWCOUNT;COMMIT;DBMS_OUTPUT.PUT_LINE('已删除 ' || v_rows_deleted || ' 条记录');
EXCEPTIONWHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('删除失败: ' || SQLERRM);ROLLBACK;
END;
/

二、匿名块中的动态SQL

1. EXECUTE IMMEDIATE

DECLAREv_table_name VARCHAR2(30) := 'EMPLOYEES';v_sql VARCHAR2(1000);v_count NUMBER;
BEGINv_sql := 'SELECT COUNT(*) FROM ' || v_table_name || ' WHERE department_id = :dept_id';EXECUTE IMMEDIATE v_sql INTO v_count USING 10;DBMS_OUTPUT.PUT_LINE('部门10有 ' || v_count || ' 名员工');
EXCEPTIONWHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('执行动态SQL出错: ' || SQLERRM);
END;
/

2. 动态游标--下篇文章会具体展开详细分享该部分内容

DECLARETYPE emp_cur_type IS REF CURSOR;emp_cursor emp_cur_type;v_sql VARCHAR2(1000);v_emp_rec employees%ROWTYPE;v_dept_id NUMBER := 20;
BEGINv_sql := 'SELECT * FROM employees WHERE department_id = :dept_id';OPEN emp_cursor FOR v_sql USING v_dept_id;LOOPFETCH emp_cursor INTO v_emp_rec;EXIT WHEN emp_cursor%NOTFOUND;DBMS_OUTPUT.PUT_LINE(v_emp_rec.employee_id || ': ' || v_emp_rec.last_name);END LOOP;CLOSE emp_cursor;
END;
/

三、匿名块的实际应用场景

1. 数据迁移

DECLARECURSOR src_cur IS SELECT * FROM source_table;v_count NUMBER := 0;
BEGINFOR rec IN src_cur LOOPINSERT INTO target_table VALUES rec;v_count := v_count + 1;-- 每1000条提交一次IF MOD(v_count, 1000) = 0 THENCOMMIT;DBMS_OUTPUT.PUT_LINE('已迁移 ' || v_count || ' 条记录');END IF;END LOOP;COMMIT;DBMS_OUTPUT.PUT_LINE('迁移完成,共 ' || v_count || ' 条记录');
EXCEPTIONWHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('迁移出错: ' || SQLERRM);ROLLBACK;
END;
/

2. 批量数据处理

DECLARETYPE id_array IS TABLE OF employees.employee_id%TYPE;v_ids id_array := id_array(101, 102, 103, 104, 105);
BEGINFORALL i IN 1..v_ids.COUNTUPDATE employeesSET salary = salary * 1.1WHERE employee_id = v_ids(i);COMMIT;DBMS_OUTPUT.PUT_LINE('成功更新 ' || SQL%ROWCOUNT || ' 条记录');
EXCEPTIONWHEN OTHERS THENDBMS_OUTPUT.PUT_LINE('批量更新失败: ' || SQLERRM);ROLLBACK;
END;
/

3. 数据库对象检查

DECLAREv_table_exists NUMBER;v_table_name VARCHAR2(30) := 'TEST_TABLE';
BEGINSELECT COUNT(*) INTO v_table_existsFROM user_tablesWHERE table_name = v_table_name;IF v_table_exists = 0 THENEXECUTE IMMEDIATE 'CREATE TABLE ' || v_table_name || ' (id NUMBER, name VARCHAR2(100))';DBMS_OUTPUT.PUT_LINE('表 ' || v_table_name || ' 已创建');ELSEDBMS_OUTPUT.PUT_LINE('表 ' || v_table_name || ' 已存在');END IF;
END;
/

四、匿名块使用技巧

1. 启用DBMS_OUTPUT

SET SERVEROUTPUT ON SIZE 1000000

2. 调试输出

DBMS_OUTPUT.PUT_LINE('变量值: ' || v_variable);

3. 计时执行

DECLAREv_start TIMESTAMP := SYSTIMESTAMP;
BEGIN-- 执行代码DBMS_OUTPUT.PUT_LINE('执行时间: ' || (SYSTIMESTAMP - v_start));
END;
/

4. 使用绑定变量

EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM employees WHERE department_id = :dept_id'
INTO v_count USING 10;

5. 临时禁用代码:/*...*/

/*
-- 被注释的代码
DBMS_OUTPUT.PUT_LINE('这段代码不会执行');
*/
http://www.dtcms.com/wzjs/822577.html

相关文章:

  • 大连好的网站建设公司深圳市龙华区区长
  • 泸州工投建设集团有限公司网站漯河建设企业网站
  • 艺术视频手机网站可以做吗以你的心诠释我的爱网页设计素材
  • 如何向百度提交站点收录信息北京科技公司名单
  • 南京网站维护公司有哪些织梦网站必须下载地址
  • h5制作软件包括网站建设关键词优化
  • 河北廊坊做网站网站建设需求量大
  • 安徽省和城乡建设厅网站广州优化防控措施
  • 优秀网站设计作品邯郸市都有哪些网络推广公司
  • wap网站如何制作做汽配的网站
  • 网站开发人员职责做一套网站开发多少钱
  • 网站的例子推广引流渠道方法大全
  • 广州建设工程网5年网站seo优化公司
  • 170个可带链接锚文本外链的网站论坛WordPress搜狗不收录
  • 免费发布信息网网站网站建设计划书范本
  • 商业设计网站推荐编辑网站的软件
  • 常州本地网站设置网站域名
  • seo如何做网站建设装饰工程合同范本
  • word文档做网站培训怎么样网页设计
  • 一个做礼品的网站购买软件平台
  • 网站开发常用的语言和工具优易网络公司员工发展
  • 嘉鱼网站建设哪家好wordpress教程cms
  • 二手房网站怎么做手游传奇发布网站
  • html5手机网站开发实例wordpress 传值
  • 贵阳网站设计阳光创信好吗网络营销策划推广
  • 做网站电信运营许可证电脑上制作ppt的步骤
  • 手机网站怎么改成电脑版wordpress在哪里下载
  • 交易平台网站制作适合seo软件
  • 仿照别人的网站做违法吗wordpress 电子书插件
  • 网站如何做水晶按钮晋江文学城官网