首页 > 嗟来之食 > Oracle手边常用70则脚本知识汇总
2016
05-25

Oracle手边常用70则脚本知识汇总

73 sql语句编写规范

71 视图相关介绍:视图
自定义异常处理

异常之游标打开异常
异常游标没打开
异常case_no_found

分页sql语句2

select * from (select 别表.*,rownum rn from (select * from 表) 别表 where rownum<=截取前n条) where rownum>=筛选条件

68 游标相关介绍:游标的java调用

创建输入与输出的存储过程
65 循环2
64 进阶存储过程实例

62 游标实例
61 记录实例
复合变量

定义变量的实例

59 包的相关介绍:包的使用实例

系统权限回收

52 系统权限
51 建立索引

维护表的完整性2

49 表的完整性:维护表的完整性
48 删除主键约束
45 增加表中列的约束
44 建表约束

42 查询表空间信息

40 扩展表空间

38 磁盘损坏移动表空间和数据

32 直接导出

27 设置事务不能默认提交
26 同时修改两张表的部分数据

25 关于事务的相关介绍:手动提交事务,错误回滚

24 Java如何使用oracle数据库

23 合并查询去除重复行
22 内置函数之空值替换

16 要求用户定期修改密码
15 解锁账户

14 账户锁定
12 回收授权
11授权部分表被查看
alter table TPointManage add AddPointsReason number(8)
eg:
alert table 表名 add column 列名
10 oracle中在已有的表中增加或删除一列

8 删除用户以及其用户下对象

6 SQl语句参数值设置

5 Spool截取屏幕内容

2 数据库使用的注意事项

1 数据库基本介绍
摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码、表空间、多表联合、执行语句等常规操作。另外表的导入导出也很常用,这些脚步命令之前都做有总结,今统一整理出最为常用的语句,使用方便而已。其中文档是笔者数年整理所得。
时间:2016年3月4日13:58:36
作者:白宁超

function identity<T>(arg: T): T {

function identity<T>(arg: T): T {
return arg;
}

var myIdentity: <U>(arg: U)=>U = identity;

function identity<T>(arg: T): T {
return arg;
var myIdentity: {<T>(arg: T): T} = identity;

下面开始写第一个泛型接口。用上个例子中的对象字面量来写接口:

interface GenericIdentityFn<T> {
(arg: T): T;

var myIdentity: GenericIdentityFn<number> = identity;

除了泛型接口,我们还可以创建泛型类。请注意,不可能创建泛型枚举和模块。
泛型类

class GenericNumber<T> {
add: (x: T, y: T) => T;
}
var myGenericNumber = new GenericNumber<number>();
myGenericNumber.zeroValue = 1;
myGenericNumber.add = function(x, y) { return x + y; };
alert(myGenericNumber.add(myGenericNumber.zeroValue, 1)); // 2
这是对"GenericNumber"类想当直观的使用,你也可能注意到并未限制只能使用"number"类型。我们可以使用"string"抑或更复杂的对象。

alert(stringNumeric.add(stringNumeric.zeroValue, "World")); // Hello World

和接口一样,将类型参数放在类之后来告诉我们类的所有属性都是同一个类型。
泛型的限制
如果你还记得之前的例子,有时候你想要写一个泛型函数来操作一组类型,并且你是知道这些类型具有什么功能。
在"loggingIdentity"例子中,我们希望能够访问"arg"的".length"属性,但是编译器不能确定每个类型都有".length"属性,所以它将报错提示我们不能这么做。
function loggingIdentity<T>(arg: T): T {
}
相对于处理任何类型或者所有类型,我们更希望强制去要求函数去处理带有".length"属性的任何类型或者所有类型。只要该类型有这个成员(属性),我们便运行通过,也就是必须包含这个指定的成员(属性)。
既然需要这么做,我们就创建一个描述限制的接口。在这里,先创建一个只有单个属性".length"的接口,然后使用这个接口和"extends"关键字来指明限制:

interface hasLength {
length: number;
function loggingIdentity<T extends hasLength>(arg: T): T {
console.log(arg.length); // 现在我们知道它含有.length属性,并且不报错
return arg;

因此,我们需要传入其类型具有所需属性的值:

var newGreeter = create<Greeter>(Greeter);

java程序运行时,其对象是怎么进行放置和安排的呢?内存是怎么分配的呢?理解好这个很有好处!java有5个地方可以存储数据:
2、堆栈。位于内存中,通过堆栈指针可以获得直接的内存分配。对象引用和基本数据(int,boolean等)存放于堆栈中。注意:是对象的引用,对象数据本身却是存放在堆中的。于对象而言,在堆中存放的只是对象数据的一个地址(类似于C语言的指针),通过它可以访问到对象本身的属性和方法。
3、堆。同样位于内存中,用于存放所有的java对象。需要一个对象的时候,只需要用new写一行简单的代码,当执行这行代码的时候,会直接在堆中进行空间分配。

String s = new String("hello");

下图表示了其存储状态:

s 是一个String型对象的引用,实际上就是堆内存中一个String型对象的地址。引用 s 保存在 &ldquo;堆栈&rdquo; 中。

List-1:

1 public static void main(String[] args) {
2
3 Func f = new Func();
4
7 }

语句很简单,在main方法中首先定义了一个Func对象f和A对象a1,然后将a1作为参数传递给f的modify方法中。程序在第6行的时候会从main方法跳转到f.modify(…)方法内部执行。下图展示了数据的保存状态:

可以清楚的看到main方法向modify方法中传递的是对象引用 a1 的一份拷贝(为了方便区分,将拷贝命名为aa1),这两个引用都指向同一块堆内存区域(同一个A对象)。所以,我们可以想象,在modify方法中可以通过 aa1 来修改A对象的属性,而且其变化在由modify返回main以后依然会保留下来。

List-2:

最后编辑:
作者:
这个作者貌似有点懒,什么都没有留下。

留下一个回复