关于Oracle中varchar2和dbms_output.put_line的长度限制问题小结
一. varchar2长度限制问题 1) 表字段创建最大长度:4000 SQL> CREATE TABLE t_test1(a VARCHAR2(4000)); --正确 Table created. SQL> CREATE TABLE t_test2(a VARCHAR2(4001)); --错误 CREATE TABLE t_test2(a VARCHAR2(4001)) * ERROR at line 1: ORA-00910: specified length too long for its datatype 2) plsql变量定义最大长度:32767 SQL> CREATE OR REPLACE PROCEDURE sp_test1 (p IN VARCHAR2 DEFAULT NULL ) --正确 IS x_var VARCHAR2 (32767); BEGIN DBMS_OUTPUT.put_line (p); END;
ORACLE九九乘法表(递归)
WITH NUMS AS (SELECT ROWNUM NUM FROM DUAL CONNECT BY LEVEL < 10)SELECT MAX(DECODE(A, 1, EXP)) A, MAX(DECODE(A, 2, EXP)) B, MAX(DECODE(A, 3, EXP)) C, MAX(DECODE(A, 4, EXP)) D, MAX(DECODE(A, 5, EXP)) E, MAX(DECODE(A, 6, EXP)) F, MAX(DECODE(A, 7, EXP)) G, MAX(DECODE(A, 8, EXP)) H, MAX(DECODE(A, 9, EXP)) I FROM (SELECT A.NUM A, B.NUM B, A.NUM || '*' || B.NUM || '=' || A.NUM * B.NUM EXP FROM NUMS A, NUMS B WHERE A.NUM <= B.NUM) G