oracle怎么插svm,oracle插数据

oracle怎么把一列数据插入到另一列

oracle怎么把一列数据插入到另一列的方法。

创新互联公司专注于企业营销型网站、网站重做改版、伊宁网站定制设计、自适应品牌网站建设、H5场景定制电子商务商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为伊宁等各大城市提供网站开发制作服务。

如下参考:

1.一个学生的数据表,这里我们需要修改数据表中的StudentName数据表中的个人数据。

2.我们首先打开我们的数据库查询语句,输入查询语句首先查询数据表中的数据内容。

3.输入查询语句:Select*fromStudent,输入后,选择所有内容,然后选择执行按钮,执行SQL语句。

4.执行后,在Student表的第4行(Studentname中的“cui”),我们需要将其更改为“liangliang”。

5.右键点击你的电子表格,选择“编辑前200行”。

6.这里我们直接选择里面的内容,改为“亮亮”。

7.修改完成后在这里我们选择右键点击内容,然后选择执行里面。

8.执行之后,我们使用数据查询语句以相同的方式查询数据。在这里,我们可以看到在下图中数据内容已经被成功修改。

Oracle 批量插入数据怎么做

oracle批量插入数据使用sqlldr。

首先将要导入的excel文件另存为csv格式(默认逗号间隔,另存为csv,不只是改后缀名)

然后用sqlldr导入。

sqlldr的参数很多,简单的几个就可以了:

建一个控制文件control.txt:

load data

infile 'f:\test.csv'

into table test1

(id char terminated by ',',

name char terminated by ',',

height char terminated by ',',

birth char terminated by whitespace)

----这里根据需要,修改数据文件的名字和路径。括号里面的字段名和字段数也根据实际情况修改。由于保存的是csv,字段间以逗号隔开,因此控制文件里定义最后一个字段以whitespace来分隔,其它的用','

然后使用sql*loader:

sqlldr userid=USERNAME/PASSWORD@XXXX control=f:\control.txt log=f:\test.log bad=f:\testbad.csv

userid后跟用户名密码,@后的是网络服务名,需要在客户端的tnsnames.ora文件里定义。control后的值是刚刚建的控制文件的路径,日志将生成在log参数指定的位置上,如果有记录没有导入成功,这些记录会放置在bad后指定的文件里。

oracle中怎么插入多条数据

1、采用insert into values 语句插入一条,写很多条语句即可多条数据,这种主要针对于离散值以及一些基础信息的录入,如:insert into test(xh,mc) values('123','测试');

如果插入的数据有规律,可利用for、loop循环插入,主要用于批量生成测试数据

begin

for i in 1 .. 100 loop

insert into test(xh,mc) values(i||'','测试');

end loop;

end ;。

2、采用insert into selct from 语句来一次性插入一个集合,这种主要依据于要插入的数据源已经存储于数据库对象中,或者利用dual虚表来构造数据,经过加工后写入一个集合。

insert into test (xh,mx) select '123','测试' from dual;

3、采用plsql等工具、或者oracle的imp、impdp命令来导入,这种主要用数据库与数据库之间的大批量数据导入,导入的数据格式为plsql的pde、oracle的dmp等。dmp文件可使用

table_exists_action参数控制导入动作:replace替换原表,truncate清除原表数据再导入,append增量导入数据,当然impdp数据泵的导入要依赖于directory路径。

impdp 用户名/密码 dumpfile=123.dmp logfile=123.log directory=imp_dir tables=test table_exists_action=append

4、使用excel文件直接拷贝。这种主要用于要写入的数据已是excel文件或者行列分明的其它格式文件,每一列的值和表结构相对应,可直接打开表的行级锁,把数据拷贝进入。

打开行级锁方法:

select t.*,rowid from 表名 t where 1=2;

select * from 表名 where 1=2 for update;

直接把excel数据拷贝到表里

如何获取新插入Oracle数据库Sequence值的5种方法

获取新插入Oracle数据库Sequence值的5种方法如下:

//公共代码:得到数据库连接

public Connection getConnection() throws Exception{

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:dbname", "username", "password");

return conn;

}

//方法一

//先用select seq_t1.nextval as id from dual 取到新的sequence值。

//然后将最新的值通过变量传递给插入的语句:insert into t1(id) values(?)

//最后返回开始取到的sequence值。

//这种方法的优点代码简单直观,使用的人也最多,缺点是需要两次sql交互,性能不佳。

public int insertDataReturnKeyByGetNextVal() throws Exception {

Connection conn = getConnection();

String vsql = "select seq_t1.nextval as id from dual";

PreparedStatement pstmt =(PreparedStatement)conn.prepareStatement(vsql);

ResultSet rs=pstmt.executeQuery();

rs.next();

int id=rs.getInt(1);

rs.close();

pstmt.close();

vsql="insert into t1(id) values(?)";

pstmt =(PreparedStatement)conn.prepareStatement(vsql);

pstmt.setInt(1, id);

pstmt.executeUpdate();

System.out.print("id:"+id);

return id;

}

//方法二

//先用insert into t1(id) values(seq_t1.nextval)插入数据。

//然后使用select seq_t1.currval as id from dual返回刚才插入的记录生成的sequence值。

//注:seq_t1.currval表示取出当前会话的最后生成的sequence值,由于是用会话隔离,只要保证两个SQL使用同一个Connection即可,对于采用连接池应用需要将两个SQL放在同一个事务内才可保证并发安全。

//另外如果会话没有生成过sequence值,使用seq_t1.currval语法会报错。

//这种方法的优点可以在插入记录后返回sequence,适合于数据插入业务逻辑不好改造的业务代码,缺点是需要两次sql交互,性能不佳,并且容易产生并发安全问题。

public int insertDataReturnKeyByGetCurrVal() throws Exception {

Connection conn = getConnection();

String vsql = "insert into t1(id) values(seq_t1.nextval)";

PreparedStatement pstmt =(PreparedStatement)conn.prepareStatement(vsql);

pstmt.executeUpdate();

pstmt.close();

vsql="select seq_t1.currval as id from dual";

pstmt =(PreparedStatement)conn.prepareStatement(vsql);

ResultSet rs=pstmt.executeQuery();

rs.next();

int id=rs.getInt(1);

rs.close();

pstmt.close();

System.out.print("id:"+id);

return id;

}

//方法三

//采用pl/sql的returning into语法,可以用CallableStatement对象设置registerOutParameter取得输出变量的值。

//这种方法的优点是只要一次sql交互,性能较好,缺点是需要采用pl/sql语法,代码不直观,使用较少。

public int insertDataReturnKeyByPlsql() throws Exception {

Connection conn = getConnection();

String vsql = "begin insert into t1(id) values(seq_t1.nextval) returning id into :1;end;";

CallableStatement cstmt =(CallableStatement)conn.prepareCall ( vsql);

cstmt.registerOutParameter(1, Types.BIGINT);

cstmt.execute();

int id=cstmt.getInt(1);

System.out.print("id:"+id);

cstmt.close();

return id;

}

//方法四

//采用PreparedStatement的getGeneratedKeys方法

//conn.prepareStatement的第二个参数可以设置GeneratedKeys的字段名列表,变量类型是一个字符串数组

//注:对Oracle数据库这里不能像其它数据库那样用prepareStatement(vsql,Statement.RETURN_GENERATED_KEYS)方法,这种语法是用来取自增类型的数据。

//Oracle没有自增类型,全部采用的是sequence实现,如果传Statement.RETURN_GENERATED_KEYS则返回的是新插入记录的ROWID,并不是我们相要的sequence值。

//这种方法的优点是性能良好,只要一次sql交互,实际上内部也是将sql转换成oracle的returning into的语法,缺点是只有Oracle10g才支持,使用较少。

public int insertDataReturnKeyByGeneratedKeys() throws Exception {

Connection conn = getConnection();

String vsql = "insert into t1(id) values(seq_t1.nextval)";

PreparedStatement pstmt =(PreparedStatement)conn.prepareStatement(vsql,new String[]{"ID"});

pstmt.executeUpdate();

ResultSet rs=pstmt.getGeneratedKeys();

rs.next();

int id=rs.getInt(1);

rs.close();

pstmt.close();

System.out.print("id:"+id);

return id;

}

//方法五

//和方法三类似,采用oracle特有的returning into语法,设置输出参数,但是不同的地方是采用OraclePreparedStatement对象,因为jdbc规范里标准的PreparedStatement对象是不能设置输出类型参数。

//最后用getReturnResultSet取到新插入的sequence值,

//这种方法的优点是性能最好,因为只要一次sql交互,oracle9i也支持,缺点是只能使用Oracle jdbc特有的OraclePreparedStatement对象。

public int insertDataReturnKeyByReturnInto() throws Exception {

Connection conn = getConnection();

String vsql = "insert into t1(id) values(seq_t1.nextval) returning id into :1";

OraclePreparedStatement pstmt =(OraclePreparedStatement)conn.prepareStatement(vsql);

pstmt.registerReturnParameter(1, Types.BIGINT);

pstmt.executeUpdate();

ResultSet rs=pstmt.getReturnResultSet();

rs.next();

int id=rs.getInt(1);

rs.close();

pstmt.close();

System.out.print("id:"+id);

return id;

}

在oracle中怎么将查询到的数据插入到另一个表中

1、首先,一个学生数据表,在这里需要修改数据表中StudentName数据表中的个人数据,如下图所示,然后进入下一步。

   

2、其次,完成上述步骤后,打开数据库查询语句,输入查询语句,然后首先查询数据表中的数据内容,如下图所示,然后进入下一步。

   

3、接着,完成上述步骤后,输入查询语句:Select

* fromStudent,输入后,选择所有内容,然后选择执行按钮以执行SQL语句,如下图所示,然后进入下一步。

   

4、然后,完成上述步骤后,在Student表的第4行(Studentname中的“崔”)中,需要将其更改为“亮亮”,如下图所示,然后进入下一步。

   

5、随后,完成上述步骤后,右键单击电子表格,然后选择“编辑前200行”选项,如下图所示,然后进入下一步。

   

6、接着,完成上述步骤后,选择内部内容并将其更改为“

亮亮”,如下图所示,然后进入下一步。

   

7、然后,完成上述步骤后,选择右键单击内容,然后选择内部执行选项,如下图所示,然后进入下一步。

   

8、最后,完成上述步骤后,使用数据查询语句以相同的方式查询数据,可以看到下图中的数据内容已成功修改并插入到另一个表中,如下图所示。这样,问题就解决了。


名称栏目:oracle怎么插svm,oracle插数据
文章URL:http://ybzwz.com/article/hesejj.html