TSQL与PL/SQL的比较

1)数据类型

TSQL

PL/SQL

numeric(p,s)

numeric(p,s) or NUMBER(p,s)

decimal(p,s)

decimal(p,s) or NUMBER(p,s)

char(m)

Char(m)

varchar(m)

varchar2(m)

datetime

date

记录

Record

表字段

%type

表记录

%rowtype

Table

自动增长变量

AUTOINCREMENT

2)变量声明、赋值与引用

TSQL

PL/SQL

声明

declare

@ls_casher char(1),

@ln_payAmt decimal(14,4)

declare

on_hand INTEGER;

ls_casher char(1);

赋值

select @ls_casher = 'A'

ls_casher:=’A’;

引用

if @ ls_casher = 'A'

if ls_casher = 'A' then

在SQL语句中赋值

SELECT @ls_casher=sal FROM emp WHERE empno = emp_id;

SELECT sal INTO ls_casher FROM emp WHERE empno = emp_id;

在SQL语句中引用

SELECT * FROM emp WHERE sal = @ls_casher;

SELECT * FROM emp WHERE sal = ls_casher;

3)函数与操作符

字符串

TSQL

PL/SQL

连接

+

||

TRIM

LTRIM、RTRIM

SUBSTRING

SUBSTR、SUBSTRB

INSTR、INSTRB

right(str,n)

substr(str,-n)

日期

TSQL

PL/SQL

系统日期

getdate()

SYSDATE

数值

TSQL

PL/SQL

空值判断与处理

TSQL

PL/SQL

判断

IS NULL

IS NULL

空值替换

Isnull(para,0)

NVL(para,0)

REPLACE(old_string, NULL, my_string)

转换

TSQL

PL/SQL

字符->日期

Convert(datetime, expr, style)

To_Date(format, expr)

字符<-日期、数值

Convert(char(n), expr, style)

To_char(expr,format)

数值

To_Number()

其它

TSQL

PL/SQL

4)语句

TSQL

PL/SQL

statement block

BEGIN...END

BEGIN...END;

conditional

1) IF…ELSE…

2) IF…ELSE IF…else…

3) CASE

1)IF..then...ELSE…end if;

2)If…then…

elsif…else…endif

3)decode

Repeat

WHILE Boolean_expression

{statement_block}

[BREAK]

{statement_block}

[CONTINUE]

1)Loop …exit;…end loop;

2)loop…exit when…end loop;

3)WHILE condition LOOP

sequence_of_statements;

EXIT WHEN boolean_expression;

END LOOP;

3)for…in [reverse]…loop

end loop;

GOTO

GOTO label

label:

GOTO label;

<<label>>

Exits unconditionally

RETURN

Return;

Sets a delay for statement execution

WAITFOR

Comment

--

/*…*/

--

/*…*/

PRINT

PRINT string

Set serveroutput on

dbms_output.put_line(string);

RAISERROR

RAISERROR

EXECUTE

EXECUTE

NULL statement

NULL;

5)cursor

TSQL

PL/SQL

DECLARE

DECLARE cursor_name CURSOR

[LOCAL | GLOBAL]

[FORWARD_ONLY | SCROLL]

[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]

[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]

[TYPE_WARNING]

FOR select_statement

[FOR UPDATE [OF column_name [,...n]]]

DECLARE

CURSOR cursor_name IS

SELECT_statement;

open

Open cursor_name

Open cursor_name;

Fetch

Fetch cursor_name into

var1,var2…

Fetch cursor_name into

var1,var2…

||

%rowtype_var;

Close

Close cursor_name

Close cursor_name;

Attribute

@@FETCH_STATUS

@@CURSOR_ROWS

CURSOR_STATUS

%found

%notfound

%isopen

%rowcount

DEALLOCATE

DEALLOCATE cursor_name

隐式cursor

Select…into (仅可处理单行记录)

6)trigger

TSQL

PL/SQL

创建

CREATE TRIGGER trigger_name

ON table

[WITH ENCRYPTION]

{FOR {[DELETE][,][INSERT][,] [UPDATE] }

AS

sql_statement [...n]

}

Create or replace trigger t_name

{before|after}{insert|update|delete}

on table_name

[for each row [when conditional]

类型(按触发级别和时序)

语句

after

行或语句

before or after

访问数据操纵行的值

通过表Inserted、Deleted访问

通过记录 :New、 :Old访问,仅可用于行级触发器

谓词/函数/属性

Inserting、updating、deleteing

Updating(col)

Update(col)

使能

Alter table tabname {disable|enable} trigger {t_name|all}

Alter trigger t_name {disable|enable}

限制

作为触发语句的一部分,不可用事务控制命令

不能声明和使用LONG、LONG RAW变量和列

删除

Drop trigger t_name

Drop trigger t_name;

7)procedure

TSQL

PL/SQL

创建

CREATE PROCEDURE] p_name

[ {@parameter data_type} [VARYING] [= default] [OUTPUT] ] [,...n]

[WITH

{

RECOMPILE | ENCRYPTION

| RECOMPILE, ENCRYPTION

}

]

AS

sql_statement [...n]

Create or replace procedure p_name

[Para1 {in|out|inout} datatype[,…]

[{:=|default} default_value]]

{IS|AS}

查询

删除

DROP PROCEDURE p_name

DROP PROCEDURE p_name;

调用

EXEC p_name [para1[,…]]

P_name[(para1[,…])];

参数

按位置传递

1)按位置传递

2)带名传递

P_name(para1=>var1);

debit_account(amount => 500, acct_id => 10261);

8)数据字典/系统表

TSQL

PL/SQL

系统对象表

Dbo.sysobjects

User_source、User_objects(OBJ)、User_tables(TABS)、User_triggers、ALL_tables、All_View、All_catalog、All_objects

对象脚本

sp_helptext

DESC、ALL_source

用户表

Sysusers

All_users

表列

All_tab_columns

依赖

All_dependencies

字典表说明

DICT

9)SQL

TSQL

PL/SQL

Select

Select @var=<value>

Select value into var from dual

Insert

insert / insert into

insert into

Delete

比较

Any, some, all

集合

Union、Union all、Intersect、Minus、

10)     全局变量

TSQL

PL/SQL

语句执行成功

error

SQLCODE

select 是否有结果

exists

select...into + SQL%FOUND

11)     命令行查询工具

ISQL

SQL PLUS

读取、执行SQL文件

Isql –Usa –Ppass –Shost –ifile

sqlplus [-s] user/pass@db -@filename

12)     杂项

TSQL

PL/SQL

在SQL语句中

Insert…With tablock

Insert…With Tablockx

Select…for update

Select…for readonly

独立语句

set transcation isolation level to Read uncommited

在SQL语句中

select …for update of…;

独立语句

lock table tabname in row share mode;

lock table tabname in share exclusive mode;

用户连接数

数据库文件

Device

Tablespace

CREATE TABLESPACE testdb DATAFILE 'C:"ORANT"DATABASE"testdb.ORA' SIZE 20M AUTOEXTEND ON NEXT 2M;

CREATE ROLLBACK SEGMENT "RB_TESTDB" TABLESPACE "TESTDB";

ALTER ROLLBACK SEGMENT "RB_TESTDB" ONLINE;

显示DML执行计划

Show plan

Explain plan

保留点

¨         Save transcation Sp_name

¨         ROLLBACK TRANSACTION percentchanged

¨         Savepoint Sp_name

¨         Rollback to savepoint sp_name

对模式对象改名

Rename

分析对象

Analyze

Sp_help?

13)对于TSQL autoincremental identity 字段的转换

drop table x cascade constraints

/

create table x

(

xxx number(10,0)            not null,

yy  varchar2(10)            null    ,

constraint pk_tab_xxxxxxx primary key (cc)

)

/

CREATE SEQUENCE "ISD"."TEST_SEQ" INCREMENT BY 1 START WITH 0 MAXVALUE 9999999999 MINVALUE 1 CYCLE CACHE 20 NOORDER;

/

CREATE OR REPLACE TRIGGER "ISD".TR_Create_Uniqure_key

BEFORE INSERT ON "ISD"."X" FOR EACH ROW

BEGIN

SELECT TEST_SEQ.nextval into :new.xxx FROM DUAL;

END;

/

insert into x(yy) values('888')

TSQL与PL/SQL的比较(不完全版)相关推荐

  1. TSQL与PL/SQL的比较

    TSQL与PL/SQL的比较 以前一直用mssql 做开发,最近的项目都Oracle, 1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p ...

  2. T-SQL与PL/SQL的比较

    T-SQL与PL/SQL的比较 以前一直用mssql 做开发,最近的项目都Oracle,T-SQL与PL/SQL比较下怎么样呢,从网上搜索下相关的资料,整理如下: 1)数据类型 TSQL PL/SQL ...

  3. TSQL与PL/SQL的区别

    介绍一下TSQL与PL/SQL的区别 1)数据类型 TSQL PL/SQL numeric(p,s) numeric(p,s) or NUMBER(p,s) decimal(p,s) decimal( ...

  4. 《Oracle PL/SQL程序设计(第5版)》一一2.5 编辑PL/SQL的环境

    本节书摘来自异步社区出版社<Oracle PL/SQL程序设计(第5版)>一书中的第2章,第2.5节,作者:[美]Steven Feuerstein , Bill Pribyl,更多章节内 ...

  5. 《Oracle PL/SQL程序设计(第5版)》一一2.4 执行必要的PL/SQL任务

    本节书摘来自异步社区出版社<Oracle PL/SQL程序设计(第5版)>一书中的第2章,第2.4节,作者:[美]Steven Feuerstein , Bill Pribyl,更多章节内 ...

  6. 《精通Oracle Database 12c SQL PL/SQL编程(第3版)》代码下载

    <精通Oracle Database 12c SQL & PL/SQL编程(第3版)>代码下载 清华大学出版社第五事业部 检索的时候关键词写Oracle,下面几个会有12C这个版本 ...

  7. 《Oracle PL/SQL程序设计(第5版)》一一1.6 一些建议

    本节书摘来自异步社区出版社<Oracle PL/SQL程序设计(第5版)>一书中的第1章,第1.6节,作者:[美]Steven Feuerstein , Bill Pribyl,更多章节内 ...

  8. T-SQL、Jet SQL、PL-SQL

    数据库分为网状.层状.关系.对象四种类型,目前的数据库一般都是属于关系数据库(如SQLServer.Oracle,MySQL等),网状.层状基本上已成历史,对象类型尚未普及. SQL 语言是有 ANS ...

  9. pl/sql 免安装客户端月经贴一篇

    pl/sql直接安装上是不能连接到oracle的他需要媒介,即oracle提供的文件包.有两种方法获取, 一.到官网下载instantclient-basic-win32XX包,链接如下: http: ...

最新文章

  1. Spring MVC 相关资料整理
  2. django 1.8 官方文档翻译:2-5-9 条件表达式
  3. 【USACO Mar08】 奶牛跑步 A-star k短路
  4. 《Windows Server 2012 Hyper-V虚拟化管理实践》一第1章 Hyper-V服务器选型
  5. ibatis 批量插入
  6. 李彦宏要给百度全员涨薪 连实习生都雨露均沾 :再没有行动,人都要被字节跳动给挖光了。
  7. XCTF(攻防世界)—进阶web题Write Up(一)
  8. idea怎么创建python项目_idea创建django项目
  9. [JavaWeb-MySQL]数据库的备份和还原
  10. 深度学习(机器学习)模型压缩开源库整理
  11. 安装出现 PHP Extension curl must be loaded 错误(magento)
  12. 一个女人如何让自已越来越厉害
  13. 时间序列分析及应用r语言pdf_R语言时间序列分析(十一):指数平滑法
  14. 在MySQL中,一条查询语句是如何执行的
  15. Java学习教程,Java基础教程(从入门到精通)
  16. 最新区块链科普图书《区块链进化史》上市
  17. android 滤镜 原理,android openglse实现滤镜九宫格
  18. ​stp文件转wrl
  19. 免费简单好用的屏幕录制工具——Captura
  20. Docker基础之安装部署

热门文章

  1. MySQL8.0 OCP最新版1Z0-908认证考试题库整理-006
  2. Nonce Used1
  3. 偏微分方程的MATLAB解法
  4. miniconda的安装及使用
  5. 17.sql server数据库使用规则、二八原则、数据库查询集群--数据库读写分离多种实现、数据库配置读写分离(by-朝夕)
  6. 自动驾驶中基于地图的视觉定位方法
  7. DR,CR,DX区别
  8. 浅谈WEBGIS运用栅格地图实现原理[更新:Google Maps带来的新型WebGIS设计模式]
  9. 计算机硬件品牌的调研报告,计算机硬件市场调查报告.doc
  10. 已解决FileNotFoundError: [WinError 2] 系统找不到指定的文件。