Oracle的Long类型转换为String类型的方法
来源:互联网 发布:延保 知乎 编辑:程序博客网 时间:2024/05/17 01:25
在Oracle中,当我们读取系统表USER_TAB_COLS中的DATA_DEFAULT字段时,发现这个是Long类型的字段,也就是说不能读取了,因此我们需要进行转换,下面是这种方法的转换函数
CREATE OR REPLACE FUNCTION LONG_TO_CHAR(uTABLE IN VARCHAR2,uID IN NUMBER)RETURN VARCHAR2AS uVal VARCHAR2(32767); BEGIN SELECT DATA_DEFAULT INTO uVal FROM USER_TAB_COLS WHERE TABLE_NAME = UPPER(uTABLE) AND COLUMN_ID = uID; uVal := SUBSTR(uVal,1,50); RETURN uVal; END LONG_TO_CHAR;
接下来,我们可以使用下面的SQL语句读取表的结构了。首先创建一个测试表和数据
-- 删除表存储过程CALL p_DropTable('App_TEST');-- 创建序列号CALL p_SetSequence('APP_TEST_KEY');-- 创建测试表Create Table App_TEST( fKEY NUMBER, fName VARCHAR2(10) DEFAULT 'PAUL', fCSRQ DATE DEFAULT TO_DATE('2018-01-01','YYYY-MM-DD'), fPID VARCHAR2(10));Alter Table App_TEST Add Constraint App_TESTKey Primary Key (fKEY) Using index;-- 加表和字段的注释CALL p_SetComment( 'App_TEST','测试表|关键字|姓名|出生日期|点位号' );-- 插入实验数据INSERT INTO App_TEST (fKEY,fCSRQ,fPID) VALUES (APP_TEST_KEY.NEXTVAL,TO_DATE('1962-12-18','YYYY-MM=DD'),'P001');INSERT INTO App_TEST (fKEY,fName,fCSRQ,fPID) VALUES (APP_TEST_KEY.NEXTVAL,'SEPT',TO_DATE('1968-09-17','YYYY-MM=DD'),'P002');INSERT INTO App_TEST (fKEY,fName,fPID) VALUES (APP_TEST_KEY.NEXTVAL,'WENGLEI','P003');COMMIT;SELECT * FROM App_TEST;------------------------------- FKEY FNAME fCSRQ FPID------------------------------- 1 PAUL 1962-12-18 P001 2 SEPT 1968-09-17 P002 3 WENGLEI 2018-01-01 P003-------------------------------
下面是Oracle的表结构查询语句,当然也可以使用DESC
SELECT CASE WHEN M.COLUMN_ID = 1 THEN M.TABLE_NAME END TABLE_NAME ,CASE WHEN M.COLUMN_ID = 1 THEN TC.COMMENTS END COMMENTS ,M.COLUMN_ID ID ,M.COLUMN_NAME ,M.DATA_TYPE ,M.DATA_LENGTH LEN ,M.NULLABLE ,CC.COMMENTS ,LONG_TO_CHAR(M.TABLE_NAME,M.COLUMN_ID) DEFAULT_VALFROM USER_TAB_COLS MLEFT JOIN USER_COL_COMMENTS CC ON M.TABLE_NAME = CC.TABLE_NAME AND M.COLUMN_NAME = CC.column_nameLEFT JOIN USER_TAB_COMMENTS TC ON M.TABLE_NAME = TC.TABLE_NAMEWHERE M.TABLE_NAME = 'APP_TEST'ORDER BY M.COLUMN_ID----------------------------------------------------------------------------------------------------------- TABLE_NAME COMMENTS ID COLUMN_NAME DATA_TYPE LEN NULLABLE COMMENTS DEFAULT_VAL----------------------------------------------------------------------------------------------------------- APP_TEST 测试表 1 FKEY NUMBER 22 N 关键字 2 FNAME VARCHAR2 10 Y 姓名 'PAUL' 3 FCSRQ DATE 7 Y 出生日期 TO_DATE('2018-01-01','YYYY-MM-DD') 4 FPID VARCHAR2 10 Y 点位号-----------------------------------------------------------------------------------------------------------
阅读全文
0 0
- Oracle的Long类型转换为String类型的方法
- java Date类型 ,String类型,long类型之间的转换
- int类型转换为string类型的两种方法
- 15_09_17 String 类型转换为 Long 类型
- js将时间由long类型转换为string类型
- java中String和int,long类型的转换
- java中String,Date,long和Timestamp类型的转换
- JAVA 中STRING ,DATE,LONG 和TIMESTAMP类型的转换
- Java中Long、String、Date 类型之间的转换
- Java中Long、String、Date 类型之间的转换
- Java中Long、String、Date 类型之间的转换
- Java 时间类型的转换 Date、String、Long
- Java中Long、String、Date 类型之间的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- phpstorm环境搭建
- python classmethod和staticmethod
- Java Web学习笔记(一)Servlet
- Docker的三剑客
- 十六进制转十进制
- Oracle的Long类型转换为String类型的方法
- Dialog的实现与分类(不全)
- 单点登录原理与简单实现
- Windows7 OpenGLES3.0环境搭建
- 程序猿学习资料集
- python dict常用方法简介
- BZOJ1103 [POI2007]大都市meg 【树剖】
- 每天一个linux命令(21):find命令之xargs
- 代理模式