1. 本地配置数据源 采用JDBC ODBC连接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:kj021320");//这里我在本地配置了一个数据源叫kj021320 这样就可以直接获得connection了
2.直接采用teradata官方的jar包
Class.forName("com.ncr.teradata.TeraDriver");
//记得要导入官方的2个jar包
//然后url就可以这样写
con= DriverManager.getConnection("jdbc:teradata://IP/DATABASE", "username", "password");
//根据官方所示有两种URL连接方式
The application's connection URL should be changed as follows:
JDBC Type 3: jdbc:teradata://gwhost:port/dbshost
JDBC Type 4: jdbc:teradata://dbshost
具体上面嘛~ 呵呵 虽然都是连接同样的数据库 但是ODBC跟官方提供的JAR 提供的操作数据库信息是不一样的
那我们采用DatabaseMetaData来看看 数据库更方面的信息
JDBC:ODBC
DataBaseName:Teradata
DataBaseVersion:05.01.0105 V2R
the Numeric Function:ABS,EXP,LOG,MOD,PI,SQRT
the String Function:CONCAT,LEFT,LENGTH,LOCATE,LTRIM,RTRIM,SUBSTRING,UCASE
the TimeDate Function:CURDATE,CURTIME,DAYOFMONTH,DAYOFWEEK,DAYOFYEAR,HOUR,MINUTE,MONTH,MONTHNAME,NOW,QUARTER,SECOND,TIMESTAMPADD,TIMESTAMPDIFF,WEEK,YEAR
the System Function:USERNAME
JDBC-jar:
DataBaseName:Teradata
DataBaseVersion:V2R05.01.01.05
the Numeric Function:ABS(arg),ACOS(arg),ACOSH(arg),ASIN(arg),ASINH(arg)ATAN(arg),ATAN2(x,y),ATANH(arg),COS(arg),COSH(arg)EXP(arg),LN(arg),LOG(arg),NULLIFZERO(arg)SIN(arg),SINH(arg),SQRT(arg),TAN(arg),TANH(arg),ZEROIFNULL(arg)
the String Function:TRIM, SUBSTRING, SUBSTR, MSUBSTR, INDEX,MINDEX, VARGRAPHIC, CHAR2HEXINT, UPPER
the TimeDate Function:EXTRACT(
the System Function:CHARACTERS, BYTES, SUM, CSUM, MSUM, AVERAGE, MAVG, COUNT, MINIMUM, MAXIMUM, MLINREG, QUALIFY, QUANTILE, RANK
用JDBC连接teradata数据库,批量查询报如下错误信息。
com.ncr.teradata.jdbc_4.util.JDBCException: [NCR] [Teradata DBMS] : Response limit exceeded.
解决方法:
在连接数据库字符串中增加“LOB_SUPPORT=off”选项。
jdbc:teradata://数据库IP地址/CLIENT_CHARSET=cp936,TMODE=TERA,CHARSET=ASCII,LOB_SUPPORT=off,database=数据库名
中文乱码:
jdbc:teradata://128.64.96.56/CLIENT_CHARSET=EUC_CN,TMODE=TERA,CHARSET=ASCII,DATABASE=dwmds