gpt4 book ai didi

java - oracle database for jdbi 如何支持 CREATE TABLE IF NOT EXISTS?

转载 作者:行者123 更新时间:2023-11-30 10:08:55 24 4
gpt4 key购买 nike

我们有一个框架,如果它不存在,我们需要创建一个表。 Oracle 不支持 TABLE IF NOT EXISTS。关于如何使用 jdbi 为 Oracle 数据库实现它有什么建议吗?

最佳答案

这是适合您的一种方法。

如果表存在则创建返回 TRUE 的函数,如果不存在则返回 FALSE:

   CREATE OR REPLACE FUNCTION fn_exists ( p_table IN VARCHAR2 ) RETURN BOOLEAN IS
l_dummy NUMBER;
l_found BOOLEAN := FALSE:
BEGIN
SELECT 1 INTO l_dummy
FROM user_tables
WHERE table_name = p_table;
l_found := SQL%FOUND;
RETURN ( l_found );
EXCEPTION
WHEN no_data_found THEN
RETURN ( FALSE );
WHEN OTHERS THEN
RAISE:
END fn_exists;

然后,像这样使用它:

   BEGIN
IF NOT fn_exists ( 'THE_TABLE' ) THEN
EXECUTE IMMEDIATE ' CREATE TABLE THE_TABLE ....';
END IF;
END;

或者一个包装这个的过程:

   CREATE OR REPLACE PROCEDURE pr_crt_if_not_exists 
(
p_table IN VARCHAR2,
p_crt_sql IN VARCHAR2
) IS
BEGIN
IF NOT fn_exists ( p_table ) THEN
EXECUTE IMMEDIATE p_crt_sql;
END IF;
END pr_crt_if_not_exists;

然后使用:

   BEGIN
pr_crt_if_not_exists ( 'THE_TABLE', 'CREATE TABLE THE_TABLE ...' );
pr_crt_if_not_exists ( 'THE_TABLE2', 'CREATE TABLE THE_TABLE2 ...' );
.
.
END;

关于java - oracle database for jdbi 如何支持 CREATE TABLE IF NOT EXISTS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53544434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com