Teradata 常用命令

建表

CREATE SET TABLE WAPBI.MMS_BANDWIDTH ,FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT
     (
      id INTEGER GENERATED BY DEFAULT AS IDENTITY
           (START WITH 1 
            INCREMENT BY 1 
            MINVALUE -2147483647 
            MAXVALUE 2147483647 
            NO CYCLE),
      area_code VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC,
      area_name VARCHAR(100) CHARACTER SET LATIN NOT CASESPECIFIC,
      arrive_custom DECIMAL(18,2) TITLE '到达客户数',
      net_growth DECIMAL(18,2) TITLE '净增客户数',
      income DECIMAL(18,2) TITLE '收入',
      complete_progress DECIMAL(18,2) TITLE '完成进度', 
       create_at TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(0)) 
UNIQUE PRIMARY INDEX ( id );


 逻辑表达式运算符分类  

1

=

等于

<>

不等于

[NOT] BETWEEN <a>
AND <b>

介于a和b之间或不介于a和b之间

[NOT] IN

属于或不属于某个集合

IS [NOT] NULL

一个数值是空值或不是空值

[NOT] EXISTS

一个查询至少返回一行或不返回任何行




存储过程

CREATE PROCEDURE test_value
(IN p1 INTEGER, OUT pmsg CHAR(30))
BEGIN
IF p1 > 0 THEN
SET pmsg = 'Positive value';
ELSEIF p1 = 0 THEN
SET pmsg = 'Zero Value';
ELSE
SET pmsg = 'Negative Value';
END IF;
END;

SET、 END IF 和 END 语句都以分号";"结束。

执行存储过程test_value。

 CALL test_value(3, pmsg);

例外处理

REPLACE PROCEDURE handler_2 (IN deptnum INTEGER, OUT lastnm
CHAR(20))
BEGIN
DECLARE EXIT HANDLER FOR SQLSTATE '21000', SQLSTATE '42000'
BEGIN
PRINT 'EXCEPTION 21000 OCCURRED';
INSERT INTO error_log VALUES (:SQLCODE, :SQLSTATE,
CURRENT_TIME);
END;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
PRINT 'WARNING - EXCEPTION CONDITION OCCURRED';
INSERT INTO error_log VALUES (:SQLCODE, :SQLSTATE,
CURRENT_TIME);
END;
SELECT last_name INTO :lastnm FROM employee
WHERE department_number = :deptnum;
PRINT 'Successful Completion';
END;

EXIT 处理 - 在执行了例外处理的动作后,过程终止。

CONTINUE 处理 - 在执行了例外处理的动作后,过程从例外语句的下一条

处理例外时,可以使用两个保留字:

SQLSTATE - 返回特定的错误码。

SQLEXCEPTION - 告诉处理程序处理所有的例外。



事务

BT;
INSERT row1; (txn #1)
INSERT row2;
COMMIT WORK;
ET;






你可能感兴趣的:(Teradata 常用命令)