我的代码有错误:
String sql = "CREATE USER ken IDENTIFIED BY 11;";
try {
Class.forName("oracle.jdbc.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "system", "kenilyas");
System.out.println("1111111111111");
System.out.println("222222");
pst = con.prepareStatement(sql);
System.out.println("333333");
try {
System.out.println("333333");
pst.execute();
System.out.println("creating");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
Run Code Online (Sandbox Code Playgroud) 我的问题是:ORA-01704: string literal too long在使用CLOBs 插入(或在查询中执行任何操作)时,如何解决错误?
我想要这样的查询:
INSERT ALL
INTO mytable VALUES ('clob1')
INTO mytable VALUES ('clob2') --some of these clobs are more than 4000 characters...
INTO mytable VALUES ('clob3')
SELECT * FROM dual;
Run Code Online (Sandbox Code Playgroud)
当我尝试使用实际值时,虽然我ORA-01704: string literal too long回来了.这很明显,但是如何插入clobs(或者使用clob执行任何语句)?
我试过看过这个问题,但我认为它没有我想要的东西.我拥有的clob在a中List<String>,我遍历它们来做出声明.我的代码如下:
private void insertQueries(String tempTableName) throws FileNotFoundException, DataException, SQLException, IOException {
String preQuery = " into " + tempTableName + " values ('";
String postQuery = "')" + StringHelper.newline;
StringBuilder inserts …Run Code Online (Sandbox Code Playgroud) 这是从 TOAD 运行时完美运行的查询,但是当我从 Visual Studio 运行时,出现错误“ORA-00911:无效字符”。这就是我的查询的样子:
INSERT into TRB (ID, ID_REF, DATE, STATUS, INSERT_DATE,
ID_DD_REF, USER, VERIFY_DATE, VERIFY_USER)
select 11, 337470,
to_date('22.11.2016','DD.MM.YYYY'),
'O',
CAST(TO_TIMESTAMP('2016-11-22 14:28:24.260','YYYY-MM-DD HH24:MI:SS.FF9') AS DATE),
8552,
'test',
NVL(CAST(TO_TIMESTAMP('','YYYY-MM-DD HH24:MI:SS.FF9') AS DATE),''),
'' from dual
WHERE NOT EXISTS (SELECT ID FROM TRB WHERE ID = 11);
Run Code Online (Sandbox Code Playgroud)