HANA中的SQL&SQLScript&Procedure

这三者的关系图如下所示:


SQL是SQLScript的一部分,Procedure可以用SQLScript来写,也可以用其他语言来编写。

一.SQL

HANA中的SQL方言是基于PTIME的方言,基本与标准的SQL语句类似。

SQL中的标识符有以下规范:

1.不加引号(包括单,双引号)的字符都是不区分大小写的,最终都会转化为大写。如Test1 -> TEST1

2.必须要以字母开头,其他字符包括字母,数字,“$”, “#”, “_” 等。

3. 双引号里的字符是大小写敏感的,如“Test1” -> “Test1”。

4. SQL中的String用单引号包围,字符串是区分大小写的。

5. HANA中创建数据库用schema,如:create schema test。

6. 表的复制:

create table myPRIME LIKEPRIME WITH DATA;这是连带表中记录复制,如果只是复制表结构,就不加WITH DATA。

7.在Linux下,用hdbsql来执行,用命令来执行:

exe/hdbsql -i01 -nlocalhost -u SYSTEM -pmanager "select * from weiyy_test.PRODUCT" 

二. SQLScript&Procedure

Procedure是预先写一段程序,编译好后存放到数据库中,需要使用时直接调用即可。

下面举个例子说明用SQLScript来写Procedure。

DROP type PRIME_TYPE;

CREATE type PRIME_TYPE AS TABLE ( "NUMBER" INT CS_INT );

DROP PROCEDURE TESTPRO;

CREATE PROCEDURE TESTPRO(IN input1 PRIME_TYPE,OUT result PRIME_TYPE)

LANGUAGE SQLSCRIPT AS

BEGIN

result=select POWER(NUMBER,2) AS NUMBER  from:input1;

END;

select NUMBER FROM PRIME;

call TESTPRO(PRIME,?)

这段程序中有输入输出参数,自定义了一个表类型,输出一个表。

也可以用R语言来编写Procedure,但是这种方式效率不高,因为需要配置环境,安装R Server,编译R语言,加了一个中间过程。


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值