标签: sql-insert

在Oracle DB上执行PreparedStatement以插入Blob时出现NullPointerException

有没有人知道我在这里做错了什么?我试图将一个blob(包含一个重要的pdf)插入一个oracle db以及一些其他信息.我正在使用PreparedStatement

码:

public void saveReportErgebnis(int reportId, Date erzeugung, int archiv,
        Blob pdf, String kommentar) throws Exception {

    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] tmp = new byte[(int) pdf.length()];
    if(kommentar == null){
        kommentar = "";
    }

    SimpleDateFormat erstellungSdf = new SimpleDateFormat(
            "yyyy-MM-dd HH:mm:ss");

    try {
    pdf.getBinaryStream().read(tmp);

    oracle.sql.BLOB oracleBlob = new oracle.sql.BLOB((OracleConnection) getConnection(), tmp);
    PreparedStatement prepStmt = getRTTDBHandler()
            .createPreparedStatement(
                    "INSERT INTO reportergebnis(report_id, erzeugung, archiv, pdf, kommentar) VALUES (?,?,?,?,?)");
    System.out.println("debug 2 oracle");
        prepStmt.setInt(1, reportId);
        prepStmt.setString(2, formatDateString(erstellungSdf.format(erzeugung)));
        prepStmt.setInt(3, archiv);
        prepStmt.setBlob(4, oracleBlob);
        prepStmt.setString(5, kommentar); …
Run Code Online (Sandbox Code Playgroud)

java oracle blob prepared-statement sql-insert

6
推荐指数
1
解决办法
2197
查看次数

插入到存储过程中,参数MYSQL不起作用

我试图使用mysql workbench创建一个带参数的存储过程,以将数据插入表中.

我究竟做错了什么??

    USE deb42181_ramos;
CREATE PROCEDURE sp_insertuser(IN gebruikersnaamparam varchar(10)
, IN wachtwoordparam VARCHAR(50)
, IN voornaamparam VARCHAR(15)
, IN achternaamparam VARCHAR(15)
, IN tussenvoegselparam VARCHAR(10)
, IN gebruikerlevelparam INT)
BEGIN

INSERT INTO gebruikers (
gebruikersnaam
, wachtwoord
, voornaam
, achternaam
, tussenvoegsel
, gebruikerlevel)

    VALUES (gebruikersnaamparam
    , wachtwoordparam
    , voornaamparam
    , achternaamparam
    , tussenvoegselparam
    , gebruikerlevelparam);

END
Run Code Online (Sandbox Code Playgroud)

错误是在值的最后一行之后)他并不期望a;
关于Jeroen

mysql parameters stored-procedures sql-insert

6
推荐指数
1
解决办法
4万
查看次数

插入包含oracle中引号的字符串

如何在oracle中插入包含引号的字符串?我的代码是

INSERT INTO TIZ_VADF_TL_MODELS (name)
VALUES ('xxx'test'yy');
Run Code Online (Sandbox Code Playgroud)

如果我使用

INSERT INTO TIZ_VADF_TL_MODELS (name)
VALUES ("xxx'test'yy");
Run Code Online (Sandbox Code Playgroud)

我得到标识符太长错误,因为xxx'test'yy是clob.

我怎样才能做到这一点?

谢谢.

sql string oracle clob sql-insert

6
推荐指数
2
解决办法
2万
查看次数

Postgres插入视图规则与返回条款

我试图允许带有返回子句的insert语句进入Postgres v9.4中的视图,但我正在努力学习语法.这就是我想要调用insert语句的方法:

CREATE VIEW MyView AS SELECT a.*, b.someCol1
    FROM tableA a JOIN tableB b USING(aPrimaryKey);
INSERT INTO MyView (time, someCol) VALUES (someTime, someValue) RETURNING *;
INSERT INTO MyView (someCol) VALUES (someValue) RETURNING *;
Run Code Online (Sandbox Code Playgroud)

请注意,时间的默认值为NOW().这是我到目前为止:

CREATE RULE MyRuleName AS ON INSERT TO MyView DO INSTEAD (
    INSERT INTO tableA (time) VALUES COALESCE(NEW.time, NOW());
    INSERT INTO tableB (aPrimaryKey, someCol)
        VALUES (CURRVAL('tableA_aPrimaryKey_seq'), NEW.someValue);
);
Run Code Online (Sandbox Code Playgroud)

上面的工作是插入值,但我正在努力尝试找出如何添加返回的语句.我试过以下没有成功:

CREATE RULE MyRuleName AS ON INSERT TO MyView DO INSTEAD (
    INSERT INTO tableA (time) VALUES COALESCE(NEW.time, …
Run Code Online (Sandbox Code Playgroud)

postgresql sql-insert sql-returning

6
推荐指数
1
解决办法
2805
查看次数

如何将SELECT查询的每个结果的三个新行插入到同一个表中

我正在使用SQL Server.对于每一个:

select * from ServiceItems where Itemtypeid=7004 (query1)
Run Code Online (Sandbox Code Playgroud)

我想在同一个表中插入三个新行,如:

(ItemID, PackageID, ItemTypeID, ServiceID, ItemName, CreatedDate) VALUES
(19377, 5352, 7007, 2011, N'L1', '11/11/2015 6:50:51 PM'), 
(19378, 5352, 7008, 2011, N'M1', '11/11/2015 6:50:51 PM'), 
(19376, 5352, 7006, 2011, N'W1', '11/11/2015 6:50:51 PM') 

ItemID = is the primary key
PackageID = one from query1
ItemTypeID = as it is 7006,7007,700
ServiceID = one from query1
ItemName =  as it is L1,M1,W1
CreatedDate = time now
Run Code Online (Sandbox Code Playgroud)

我试过了 INSERT INTO SELECT...

INSERT INTO ServiceItems …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-insert

6
推荐指数
1
解决办法
154
查看次数

插入大量记录而不锁定表

我试图在表格中插入1,500,000条记录.我在插入过程中面临表锁定问题.所以我想出了下面的批量插入.

DECLARE @BatchSize INT = 50000

WHILE 1 = 1
  BEGIN
      INSERT INTO [dbo].[Destination] 
                  (proj_details_sid,
                   period_sid,
                   sales,
                   units)
      SELECT TOP(@BatchSize) s.proj_details_sid,
                             s.period_sid,
                             s.sales,
                             s.units
      FROM   [dbo].[SOURCE] s
      WHERE  NOT EXISTS (SELECT 1
                         FROM   dbo.Destination d
                         WHERE  d.proj_details_sid = s.proj_details_sid
                                AND d.period_sid = s.period_sid)

      IF @@ROWCOUNT < @BatchSize
        BREAK
  END 
Run Code Online (Sandbox Code Playgroud)

我在Destination表上有一个聚簇索引(proj_details_sid ,period_sid ).NOT EXISTSpart只是为了限制插入的记录再次插入表中

我做得对吗,这会避免表锁吗?还是有更好的方法.

注意:批次和没有批量插入时间或多或少相同

sql t-sql sql-server batch-insert sql-insert

6
推荐指数
2
解决办法
2万
查看次数

插入多行SQL Teradata

我正在创建一个volatile表并尝试向表中插入行.我可以上传一行如下...


create volatile table Example
(
    ProductID VARCHAR(15),
    Price DECIMAL (15,2)
)
on commit preserve rows;
et;

INSERT INTO Example
Values
('Steve',4);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试上传多个时,我收到错误:

"语法错误:预期在')'和','之间."

INSERT INTO Example
Values
('Steve',4),
('James',8);
Run Code Online (Sandbox Code Playgroud)

sql teradata sql-insert

6
推荐指数
2
解决办法
2万
查看次数

在插入/更新后,SQL(postgres)从多个表中返回数据

在postgres中是否可能在1)INSERT INTO和2)UPDATE之后从多个表返回数据?

例如,假设以下人为的示例:

review             fit
------             ----
id                 id
fit_id             label
body
Run Code Online (Sandbox Code Playgroud)

1)如何插入检查表并在RETURNING子句中返回与检查数据结合的各个拟合数据?

因此,要插入的SQL没有完成所需的结果:

INSERT INTO review (id, fit_id, body) VALUES (5, 1, 'some copy') RETURNING *;
Run Code Online (Sandbox Code Playgroud)

但是,所需的结果是:

id     | 5
fit_id | 1
body   | some copy
id     | 1
label  | some label
Run Code Online (Sandbox Code Playgroud)

2)如何更新评论fit_id并在RETURNING子句中返回与评论数据结合的新拟合数据?

SQL将fit_id更新2为审阅5而未完成所需结果:

UPDATE review SET fit_id = 2 WHERE review_id = 5 RETURNING *;
Run Code Online (Sandbox Code Playgroud)

但是,所需的结果是:

id     | 5
fit_id | 2
body   | some copy
id     | 2
label  | some …
Run Code Online (Sandbox Code Playgroud)

sql postgresql join sql-update sql-insert

6
推荐指数
1
解决办法
793
查看次数

有一个名为...的列不能从查询子查询的这部分引用

 WITH upt as (
 UPDATE backend."orders" SET "statusId" = 5
 WHERE "userId" IN (177962,88265) and "statusId" IN (0,1,2,3,4) RETURNING *
)
 INSERT INTO __test_result(orderid) VALUES ((SELECT orderid FROM upt))
Run Code Online (Sandbox Code Playgroud)

需要更新和记录数据,得到这个错误

ERROR: column "orderid" does not exist Hint: There is a column named 
"orderid" in table "__test_result", but it cannot be referenced from this part of the query.
Run Code Online (Sandbox Code Playgroud)

如何在表中插入所有“upt”行?它必须看起来

"upt.orderid","jsonb for that orderid"
Run Code Online (Sandbox Code Playgroud)

对于每个订单 jsonb 必须从具有相同 orderid 的“upt”列创建

sql postgresql sql-insert

6
推荐指数
1
解决办法
9910
查看次数

使用 EF Core 插入 SQL Server 上的事务死锁

我正在尝试使用 Entity Framework Core 快速执行大量包含大量数据的单独插入。我将数据插入到几个相关的表中,偶尔会收到SqlException以下消息;

事务(进程 ID 120)在与另一个进程的锁资源上发生死锁,并已被选为死锁牺牲品。重新运行事务。

我正在做的唯一读取是作为插入的一部分来检索新创建记录的 ID。您可以从发生的插入中看到 Entity Framework Core 日志。如果它有所作为,我向 UniqueId 列添加了一个非聚集索引。

如何避免死锁并因此获得更好的性能?

2018-06-13 17:11:59 DBG Executing DbCommand [Parameters=["@p0='40515' (Nullable = true), @p1='22a98afd-57c9-4821-8027-db9a7d1098d0' (Nullable = true), @p2='2017-12-13T17:11:41.8202539+01:00' (Nullable = true), @p3='2018-06-13T16:11:57.3627370+00:00', @p4='11' (Nullable = true), @p5='0' (Nullable = true), @p6='Teacher Tech' (Nullable = false) (Size = 1000), @p7='3' (Nullable = true), @p8='True' (Nullable = true), @p9='7f72ce12-7c3a-449e-b456-97db816dd7e6' (Nullable = true), @p10='11.0.40515.3' (Size = 50), @p11='False' (Nullable = true), @p12='False' (Nullable = true), @p13='bridge 2015-12-09_15-29 97f149c' …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock transactions sql-insert entity-framework-core

6
推荐指数
1
解决办法
3010
查看次数