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 中做到这一点,不知道;我希望这足以让您入门。
大家晚上好
我正在使用 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 中做到这一点,不知道;我希望这足以让您入门。