Groovy + Oracle sql,如何创建一个table并同时传递变量

Groovy + Oracle sql, how to create a table and pass variables at same time

大家晚上好

我正在使用 groovy java 并且正在尝试在 oracle 数据库中创建一个 table。

我知道我可以分两次做到。 首先,创建 table 然后插入来自我的数组输出的变量。

这是我的数组:

[[Paulo, Alves, Ducati, 33, London, Valentino Rossi]]

这是我的 table:

// sql scriptcreates a table
        def createTableScript = """
            CREATE TABLE MOTOGP(
                 FIRST_NAME VARCHAR(50),
                 LAST_NAME VARCHAR(50),
                 AGE NUMBER,
                 ADDRESS VARCHAR(50),
                 ALIAS VARCHAR(50)
            )"""
        // execute the create table script
        sql.execute(createTableScript);

我想在创建的同时将我的变量或 Arry 对象传递给 table。有可能吗?

提前致谢!

我不知道 Groovy,但是 - 根据您的描述 - 也许您正在寻找 CTAS (Create Table As Select)为了。在 Oracle 中,它看起来像这样:

SQL> create table motogp as
  2    select cast('Paulo'            as varchar2(20)) first_name,
  3           cast('Alves'            as varchar2(20)) last_name,
  4           33 age,
  5           cast('London'           as varchar2(20)) address,
  6           cast('Valentino Rossi'  as varchar2(20)) alias
  7    from dual;

Table created.

SQL>

那么结果是:

SQL> desc motogp
 Name                          Null?    Type
 ----------------------------- -------- --------------------
 FIRST_NAME                             VARCHAR2(20)
 LAST_NAME                              VARCHAR2(20)
 AGE                                    NUMBER
 ADDRESS                                VARCHAR2(20)
 ALIAS                                  VARCHAR2(20)

SQL> select * From motogp;

FIRST_NAME           LAST_NAME                   AGE ADDRESS              ALIAS
-------------------- -------------------- ---------- -------------------- --------------------
Paulo                Alves                        33 London               Valentino Rossi

SQL>

注意CAST我用过;没有它,table 的列的长度将等于当前列值和不同的数据类型(CHAR 而不是 VARCHAR2),这可能不是您想要的。例如:

SQL> create table motogp as
  2    select 'Paulo' first_name
  3    from dual;

Table created.

SQL> desc motogp;
 Name                          Null?    Type
 ----------------------------- -------- --------------------
 FIRST_NAME                             CHAR(5)

SQL>

现在,如何在 Groovy 中做到这一点,不知道;我希望这足以让您入门。