private static String isFunction(TSourceToken token, EDbVendor targetVendor)
      throws FunctionIdentifierException {
    if (token.toString().equalsIgnoreCase("CURRENT_DATE")
        && token.getDbvendor() == EDbVendor.dbvoracle) {
      switch (targetVendor) {
        case dbvmssql:
          return "SYSDATETIME()";
      }
      throw new FunctionIdentifierException();
    }
    if (token.toString().equalsIgnoreCase("LOCALTIMESTAMP")
        && token.getDbvendor() == EDbVendor.dbvoracle) {
      switch (targetVendor) {
        case dbvmssql:
          return "SYSDATETIME()";
      }
      throw new FunctionIdentifierException();
    }
    if (token.toString().equalsIgnoreCase("SYSTIMESTAMP")
        && token.getDbvendor() == EDbVendor.dbvoracle) {
      switch (targetVendor) {
        case dbvmssql:
          return "SYSDATETIMEOFFSET()";
      }
      throw new FunctionIdentifierException();
    }

    return null;
  }
 private static String isSpecial(TSourceToken token, EDbVendor targetVendor)
     throws SpecialIdentifierException {
   if (token.toString().equalsIgnoreCase("DUAL") && token.getDbvendor() == EDbVendor.dbvoracle) {
     switch (targetVendor) {
       case dbvmssql:
         throw new SpecialIdentifierException(
             "Dual is a table that is created by Oracle together with data dictionary. There is no DUAL table in SQL Server.");
       default:
         throw new SpecialIdentifierException(
             "Dual is a table that is created by Oracle together with data dictionary.");
     }
   }
   return null;
 }