// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.dq.dbms; import org.talend.core.model.metadata.builder.connection.DatabaseConnection; import org.talend.dataquality.indicators.DateGrain; import org.talend.utils.ProductVersion; /** * DOC scorreia class global comment. Detailled comment */ public class DB2DbmsLanguage extends DbmsLanguage { /** * DOC scorreia DB2DbmsLanguage constructor comment. */ DB2DbmsLanguage() { super(DbmsLanguage.DB2); } /** * DOC scorreia DB2DbmsLanguage constructor comment. * * @param dbmsType * @param majorVersion * @param minorVersion */ DB2DbmsLanguage(String dbmsType, ProductVersion dbVersion) { super(dbmsType, dbVersion); } /* * (non-Javadoc) * * @see org.talend.cwm.management.api.DbmsLanguage#getPatternFinderDefaultFunction(java.lang.String) */ @Override public String getPatternFinderDefaultFunction(String expression) { return "TRANSLATE(CHAR(" + expression + ") ,VARCHAR(REPEAT('9',10) || REPEAT('A',25)||REPEAT('a',25)), " //$NON-NLS-1$ //$NON-NLS-2$ + " '1234567890BCDEFGHIJKLMNOPQRSTUVWXYZbcdefghijklmnopqrstuvwxyz')"; // cannot put accents //$NON-NLS-1$ } @Override protected String getPatternFinderFunction(String expression, String charsToReplace, String replacementChars) { return "TRANSLATE(" + expression + " ,VARCHAR('" + replacementChars + "'),'" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + charsToReplace + "')"; //$NON-NLS-1$ } /* * (non-Javadoc) * * @see org.talend.cwm.management.api.DbmsLanguage#getTopNQuery(java.lang.String, int) */ @Override public String getTopNQuery(String query, int n) { return query + " FETCH FIRST " + n + " ROWS ONLY "; //$NON-NLS-1$ //$NON-NLS-2$ } /* * (non-Javadoc) * * @see org.talend.cwm.management.api.DbmsLanguage#extract(org.talend.dataquality.indicators.DateGrain, * java.lang.String) */ @Override protected String extract(DateGrain dateGrain, String colName) { return dateGrain.getName() + surroundWith('(', colName, ')'); } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#charLength(java.lang.String) */ @Override public String charLength(String columnName) { return " LENGTH(" + columnName + ") "; //$NON-NLS-1$ //$NON-NLS-2$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#trim(java.lang.String) */ @Override public String trim(String colName) { return " LTRIM(RTRIM(" + colName + ")) ";//$NON-NLS-1$ //$NON-NLS-2$ } @Override public String isNotBlank(String colName) { // ADD qiongli 2012-6-7 TDQ-5559 return " LENGTH(" + trim(colName) + ")!=0";//$NON-NLS-1$ //$NON-NLS-2$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getInvalidClauseBenFord(java.lang.String) */ @Override public String getInvalidClauseBenFord(String columnName) { return columnName + " is null or LEFT(" + columnName + ",1)" + " not in ('0','1','2','3','4','5','6','7','8','9')";//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } /* * (non-Javadoc) * * @see org.talend.dq.dbms.DbmsLanguage#getCatalogNameFromContext(org.talend.core.model.metadata.builder.connection. * DatabaseConnection) */ @Override public String getCatalogNameFromContext(DatabaseConnection dbConn) { return null; } }