网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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教程,数据库安全,数据库文摘
本月文章推荐
.物化视图高级复制中ORA-23313错误.
.Oracle9i进程内存占用问题解决方.
.刪除一個拥有大量资料的栏位.
.经典的Oracle图书推荐-之二.
.QMAIL下的主要配置文件有哪些.
.Oracle10g中新的SQLoptimizerhin.
.详细介绍 Oracle 9i 的各个技术特.
.Oracle基本数据类型存储格式浅析.
.如何查看用户表上的约束内容?.
.spfile全攻略.
.Oracle8 数据类型.
.Oracle如何处理身份管理.
.oracle热物理备份步骤.
.Oracle10g中SCN与TimeStamp的相互.
.oracle日期处理完全版.
.10gR2使用RMAN恢复临时表空间的增.
.用events跟踪解决不能创建物化试.
.DBA实验室:Oracle性能预测的重要.
.Oracle 9i截断数据表.
.ORACLE在HP_UX下的系列问题处理(.

象使用数组一样使用一个数据表变量

发表日期:2008-2-9



  虽然你可以象数组一样使用一个数据表变量,对于它能够使用的数据类型是有限制的。例如,你不能在一个数据表变量中包含另一个数据表变量。
  
  你可以象申明一个用户定义的数据表一样申明一个数据表变量;但是,在你申明了它以后,你就不能再改变数据表的定义了。另外,你必须在申明的时候定义数据表变量的所有属性。
  
  并不是所有的INSERT命令都能够在数据表变量上操作。例如,你不能在向数据表变量插入值的时候使用EXEC命令。执行一个存储过程或者插入值到数据表变量的字符串命令会返回一个错误。同样,不是所有的SELECT 命令都能够在数据表变量上操作而且你不能使用SELECT INTO 命令来插入数据到一个数据表变量中去。
  
  你不能在数据表变量上使用一些系统过程,比方sp_depends。数据表变量的对象名在运行时生成,并且是一个随机的名字,它被保存在tempdb数据库里。因为大多数的系统功能和系统过程需要对象名或者标识数值,所以要在一个数据表变量上执行系统功能或者过程是困难的。需要复杂的逻辑来获得对象的名字以及/或者标识数值来运行系统功能和过程。
  
  一个数据表变量的作用域是批处理过程,存储过程或者函数执行的过程。当批处理过程中GO命令被触发了,数据表变量也就出离了它的作用域。
  
  下面是在一个存储过程中使用一个数据表变量的简单脚本。
  
  CREATE PROCEDURE TestName
  
  AS
  
  DECLARE @TableId TABLE
  
  (table_id INT IDENTITY NOT NULL
  
  primary key nonclustered,
  
  id INT NOT NULL,
  
  name sysname NOT NULL
  
  DEFAULT 'UNKNOWN',
  
  type char(2) NOT NULL
  
  DEFAULT '9',
  
  crdate datetime NOT NULL
  
  DEFAULT current_timestamp)
  
  INSERT @TableId (id, name, type, crdate)
  
  SELECT id, 'test_' + name, type, crdate FROM tempdb..sysobjects
  
  SELECT * FROM @TableID
  
  GO
  
  exec TestName
  
  GO
上一篇:实施数据仓库的建议 人气:544
下一篇:一个关于如何解决复杂编码的挑战问题 人气:553
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐