Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

纯钧执行任务时,校验数据表时使用大小写敏感的SQL语句问题 #1845

Open
4 tasks done
IKaneryI opened this issue Nov 10, 2023 · 0 comments
Open
4 tasks done
Labels
question Further information is requested

Comments

@IKaneryI
Copy link

IKaneryI commented Nov 10, 2023

Search before asking

  • I had searched in the issues and found no similar question.

  • I had googled my question but i didn't get any help.

  • I had read the documentation: ChunJun doc but it didn't help me.

Description

我新建了一个sql任务,如下:

CREATE TABLE SYS_USER (
    ID_ varchar,
    USERNAME varchar,
    FULLNAME varchar,
    PROCTIME AS PROCTIME()
) WITH (
    'connector' = 'oracle-x',
    'url' = 'jdbc:oracle:thin:@//127.0.0.1:1521/ipmsfs',
    'table-name' = 'SYS_USER',
    'schema' = 'sysmetakeeper',
    'username' = 'sysmetakeeper',
    'password' = '***'
);

CREATE TABLE SYS_USERPOST (USER_ID varchar, POST_ID varchar) WITH (
    'connector' = 'oracle-x',
    'url' = 'jdbc:oracle:thin:@//127.0.0.1:1521/ipmsfs',
    'table-name' = 'SYS_USERPOST',
    'schema' = 'sysmetakeeper',
    'username' = 'sysmetakeeper',
    'password' = '***'
);

CREATE TABLE SYS_POST (ID_ varchar, CODE_ varchar, NAME_ varchar) WITH (
    'connector' = 'oracle-x',
    'url' = 'jdbc:oracle:thin:@//127.0.0.1:1521/ipmsfs',
    'table-name' = 'SYS_POST',
    'schema' = 'sysmetakeeper',
    'username' = 'sysmetakeeper',
    'password' = '***'
);

CREATE TEMPORARY VIEW view_out AS
SELECT
    SYS_USER.ID_,
    SYS_USER.USERNAME,
    SYS_USER.FULLNAME,
    SYS_POST.CODE_,
    SYS_POST.NAME_
FROM
    SYS_USER
    INNER JOIN SYS_USERPOST FOR SYSTEM_TIME AS OF SYS_USER.PROCTIME ON SYS_USER.ID_ = SYS_USERPOST.USER_ID
    INNER JOIN SYS_POST FOR SYSTEM_TIME AS OF SYS_USER.PROCTIME ON SYS_USERPOST.POST_ID = SYS_POST.ID_
WHERE
    SYS_USER.USERNAME IS NOT NULL;

CREATE TABLE sys_user_with_post_a099 (
    id varchar,
    username varchar,
    fullname varchar,
    post_code varchar,
    post_name varchar
) WITH (
    'connector' = 'postgresql-x',
    'url' = 'jdbc:postgresql://127.0.0.1:5432/testDB?reWriteBatchedInserts=true',
    'table-name' = 'sys_user_with_post_a099',
    'schema' = 'ningbo',
    'username' = 'ningbo',
    'password' = '***'
);

INSERT INTO
    sys_user_with_post_a099
SELECT
    *
FROM
    view_out;

纯钧在校验字段、表是否存在时使用的sql语句会给字段名、表名、schema加上引号,以至于查询数据库时会大小写敏感。
报错如下:

java.lang.IllegalArgumentException: open() failed.ORA-00942: 表或视图不存在

 querySQL: SELECT "ID_", "USERNAME", "FULLNAME" FROM "sysmetakeeper"."SYS_USER" WHERE  1=1
        at com.dtstack.chunjun.connector.jdbc.source.JdbcInputFormat.openInternal(JdbcInputFormat.java:121) ~[chunjun-connector-oracle.jar:?]
        at com.dtstack.chunjun.source.format.BaseRichInputFormat.open(BaseRichInputFormat.java:162) ~[chunjun-clients.jar:?]
        at com.dtstack.chunjun.source.DtInputFormatSourceFunction.run(DtInputFormatSourceFunction.java:126) ~[chunjun-clients.jar:?]
        at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:110) ~[chunjun-clients.jar:?]
        at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:66) ~[chunjun-clients.jar:?]
        at org.apache.flink.streaming.runtime.tasks.SourceStreamTask$LegacySourceFunctionThread.run(SourceStreamTask.java:267) ~[chunjun-clients.jar:?]
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

有没有办法能避免纯钧用大小写敏感的查询sql语句?有没有好的解决办法?

Code of Conduct

@IKaneryI IKaneryI added the question Further information is requested label Nov 10, 2023
@IKaneryI IKaneryI changed the title 大小写敏感问题 纯钧执行任务时,校验数据表时使用大小写敏感的SQL语句问题 Nov 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

1 participant