LoverAndrew opened a new issue, #6054:
URL: https://github.com/apache/seatunnel/issues/6054

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22)
 and found no similar issues.
   
   
   ### What happened
   
   OracleCatalog's sql statement of SELECT_COLUMNS_SQL_TEMPLATE have some issue 
when the column‘s type is NVARCHAR2 or NCHAR, the length of column should get 
the cols.char_col_decl_length.
   
![image](https://github.com/apache/seatunnel/assets/3733687/8ae6d953-f022-4104-bf4e-beb2d191985b)
   
   so the sql statement of SELECT_COLUMNS_SQL_TEMPLATE show be 
   
   ```
   SELECT
       cols.COLUMN_NAME,
       CASE 
           WHEN cols.data_type LIKE 'INTERVAL%%' THEN 'INTERVAL'
           ELSE REGEXP_SUBSTR(cols.data_type, '^[^(]+')
       END as TYPE_NAME,
       cols.data_type || 
           CASE 
               WHEN cols.data_type IN ('VARCHAR2', 'CHAR') THEN '(' || 
cols.data_length || ')'
               WHEN cols.data_type IN ('NVARCHAR2','NCHAR') THEN '(' || 
cols.CHAR_LENGTH || ')' 
               WHEN cols.data_type IN ('NUMBER') AND cols.data_precision IS NOT 
NULL AND cols.data_scale IS NOT NULL THEN '(' || cols.data_precision || ', ' || 
cols.data_scale || ')'
               WHEN cols.data_type IN ('NUMBER') AND cols.data_precision IS NOT 
NULL AND cols.data_scale IS NULL THEN '(' || cols.data_precision || ')'
               WHEN cols.data_type IN ('RAW') THEN '(' || cols.data_length || 
')'
           END AS FULL_TYPE_NAME,
       CASE 
         WHEN cols.data_type IN ('NVARCHAR2','NCHAR') THEN cols.CHAR_LENGTH 
         ELSE  cols.data_length
       END AS COLUMN_LENGTH,
       cols.data_precision AS COLUMN_PRECISION,
       cols.data_scale AS COLUMN_SCALE,
       com.comments AS COLUMN_COMMENT,
       cols.data_default AS DEFAULT_VALUE,
       CASE cols.nullable WHEN 'N' THEN 'NO' ELSE 'YES' END AS IS_NULLABLE
   FROM
       all_tab_columns cols
   LEFT JOIN 
       all_col_comments com ON cols.table_name = com.table_name AND 
cols.column_name = com.column_name AND cols.owner = com.owner
   WHERE 
       cols.owner = '%s'
       AND cols.table_name = '%s'
   ORDER BY 
       cols.column_id 
   ```
   
   ### SeaTunnel Version
   
   V2.3.3
   
   ### SeaTunnel Config
   
   ```conf
   none
   ```
   
   
   ### Running Command
   
   ```shell
   none
   ```
   
   
   ### Error Exception
   
   ```log
   none
   ```
   
   
   ### Zeta or Flink or Spark Version
   
   _No response_
   
   ### Java or Scala Version
   
   _No response_
   
   ### Screenshots
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to