BTEQ中不能用length函式
LENGTH()不是Teradata 的標準函式,但是Teradata SQL Assitant支援它。
今天在bteq中用此函式,報錯,搞半天,終於知道原因之所在。
[@more@]具體操作如下:
SELECT
CASE WHEN ETL_JOB LIKE 'CHK_%'
THEN SUBSTR(TRIM(etl_job),5,LENGTH(TRIM(etl_job))-4)
ELSE ETL_JOB
END etl_job
,CAST('200811'||'01' AS DATE format 'YYYYMMDD')
,Last_JobStatus
,max(Last_Endtime)
,JobType
FROM PV_AUTO.ETL_JOB
WHERE etl_job in
(……)
group by 1,2,3,5
;
報錯資訊如下:
THEN SUBSTR(TRIM(etl_job),5,LENGTH(TRIM(etl_job))-4)
$
*** Failure 3706 Syntax error: expected something between '(' and the 'TRIM' keyword.
Statement# 1, Info =450
思維慣性,以為sql中存在不可見字元,遂重寫報錯部分,不見效。突然想起,TERADA他的標準求字串長度的函式為CHAR,CHARS,CHARACTER等,將 THEN SUBSTR(TRIM(etl_job),5,LENGTH(TRIM(etl_job))-4)改成THEN SUBSTR(TRIM(etl_job),5,CHARS(TRIM(etl_job))-4),問題解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16723161/viewspace-1013489/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- System.Length 函式函式
- JavaScript 函式 length 屬性JavaScript函式
- javascript return語句只能用於函式中JavaScript函式
- 95%的人都回答不上來的問題:函式的length是多少?函式
- 為什麼在pyhton中不能用函式重新賦值函式賦值
- js函式的length屬性簡單介紹JS函式
- oracle 獲取字串長度函式length()和lengthb()Oracle字串函式
- oracle取字串長度的函式length()和hengthb()Oracle字串函式
- Java中 length、length()、size()區別Java
- postgresql中常用的函式:length、concat、as、substring、randomSQL函式random
- javascript函式使用length屬性獲取形參的數目JavaScript函式
- 【轉】linux下awk內建函式的使用(split/substr/length)Linux函式
- Oracle CAST函式不生效OracleAST函式
- 執行緒回撥函式形參不能用引用執行緒函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 拯救不會函式的我!!函式
- Rust中的into函式和from函式Rust函式
- Sql 中的 left 函式、right 函式SQL函式
- JS中函式內套函式的呼叫JS函式
- js中在一個函式中引用另一個函式中的函式,可以這麼做JS函式
- 如何使用函式指標呼叫類中的函式和普通函式函式指標
- C#中解構函式,Close函式,Dispose函式的區別C#函式
- java中size()和length區別Java
- JavaScript中的compose函式和pipe函式JavaScript函式
- C++中函式指標與函式物件C++函式指標物件
- c++中訊息函式 -- GetMessage函式C++函式
- 【函式】Oracle中聚合函式rank()使用方法函式Oracle
- Oracle 中 replace函式和translate函式比較Oracle函式
- JS中的函式JS函式
- javascript中的函式JavaScript函式
- mysql char_length和lengthMySql
- 淺談Swift中的函式式Swift函式
- JS 中的函式表示式和函式宣告你混淆了嗎?JS函式
- Haskell 中的日期函式Haskell函式
- 箭頭函式中的this函式
- C++中strlen函式C++函式
- 子父類中函式函式
- JAVA中的Random()函式Javarandom函式