动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.JSR 198 最终草案提交 统一IDE插.
.ORACLE在HP-UX下的系列问题处理(.
.Linux 平台上之 Multipath Routi.
.Oracle与PHP的集成:Zend Core f.
.Oracle中分页查找语句的实现.
.关于对bfile的基本操作全面介绍.
.教你在Oracle中通过网络连接导入.
.如何让文件系统自动mount后,还能.
.如何以树状结构显示系统当前的任.
.如何实现数据库完整备份.
.关于lob字段的处理(通过modplsql.
.通过function解决部分复杂查询的.
.Oracle DBA 用户管理试题选.
.standby Database.
.怎么样快速复制表或者是插入数据.
.ORA-01092: ORACLE 例程终止。强.
.业务处理执行语言BPEL简介.
.Oracle 数据库系统使用经验六则.
.Oracle主要的配置文件解释.
.ORACLE入门之数据库安全策略.

oracle毛病(二)

发表日期:2008-2-9 |



  
接第一篇:
11. PL/SQL的用户们, 看看下面:
  创建一个没带参数的procedure:
  create or replace procedure proc_name as
  i number;
  begin
  ...
  end proc_name;

  创建一个带参数的procedure:
  create or replace procedure proc_name(arg1,...) as
  i number;
  begin
  ...
  end proc_name;
  你很习惯用declare来声明吗? 不行, 这里不行, 你必需听我的, 用as

  创建一个触发器:
  create or replace trigger tri_name before insert on tname for each
  row
  declare
  i number;
  begin
  ..
  end;
  因为这是触发器, 所以它要用declare来声明变量, 尽管触发器用的也是PL/
  SQL的语法. 但我们是为了区别于其它类型的存储过程, 为了让用户觉得
  Oracle高深莫测一点.
  怎么就一个end;不是end tri_name吗? 是的, procedure和function是这样
  设计的, 但这样可以让用户觉得更难用一点么!
  
  (sqlplus下)你调用一个不带参数的procedure:
  call proc_name();
  (sqlplus下)你调用一个不带参数的procedure:
  call proc_name(arg1, arg2);
  是的, 它不是可选的, 它必需如此, 定义一个没有参数的procedure就是不
  要空的()号, 但调用它的时侯就是要, 定义一个有参数的procedure当然也要.
  function的情况与这个也一样.

  你调用一个function:
  ret_val := func_name();
  什么? 你不需要ret_val, 不行, 这是强买强卖, 不要不行. 否则我不干活!
  而且, 哼哼, 我给出的错误信息保证你看不懂.

  你要玩更高级的设计方法, 用上包了:
  create or replace package pack_name as
  ....
  end pack_name;
  是的, 这只是包的声明.
  要想定义这个包, 你还得:
  create or replace package body pack_name as
   procedure proc_name is
   --你不是说用as吗? 是的, 但是这里as已经被上一条语句用了, 呶! 你
   也看到了. 用is有什么不好?
   end proc_name
   function func_name is
   ...
   end func_name
  end pack_name;
12. 看看出错信息, 来自SQLPLUS的, 来自Pro*C预编译器的, 来自其它工具如
  imp, eXP, sqllda的. 说不准你也别误导呀.
13. 疲惫不堪的Pro*C程序员们:
  在函数foo中你已经声明了
  EXEC SQL WHENEVER SQLERROR GOTO sql_err;
  在另一个函数bar里你只想默默地使用
  EXEC SQL WHENEVER SQLERROR CONTINUE;
  但你没非凡声明, Pro*C的预编译器会告诉你, 它在函数bar中找不到sql_err
  标号!!! 它可以跨函数使用标号. 它也敢自称是一个预处理器跟编译器沾沾
  边, 刚才用陈桥五笔敲出来的处理器三个字恰好跟处理品是同样的键码, 我看
  叫处理品倒是名符其实.
14. DDL语句的用户们:
  alter table tname add(col1 type...);
  alter table tname modify(col1 type...);
  alter table tname drop column(col1);
  为何非要在drop里多出来一个column?
15. 命名
  user_cons_columns;
  user_constraints;
  user_rollback_segs;
  它真的要把segment统统缩写为segs吗? 把constraints缩写为cons? 把
  columns缩写为cols? 不, ORACLE的程序员们想怎么样就怎么样. 他们是觉得
  单词的全称太长了吗? 不见得, desc dba_users;看一下
  看看INITIAL_RSRC_CONSUMER_GROUP字段, 看看temporary_tablespace字段.

  再来看看一下create table:
  create table tname (col1 type,...) storage(initial .. next ..
  minextents .. maxextents ..) ...;

  desc user_tables;
  inital_extent
  next_extent
  minextents
  maxextents
  不要问他们为什么有的用单数有的用复数, 因为他们是ORACLE. 他们想这样.
  dba_tables中owner
  dba_sequences中叫sequence_owner
  user_tab_columns是关于一张表中列信息的, _tab_columns
  user_cons_columns是关于表中字段的约束信息的, _cons_columns
上一篇:Oracle数据库小程序 人气:372
下一篇:oracle的毛病!! 人气:267
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号