标签: executequery

执行select语句的结果

如何执行我的选择查询的结果.下面的查询为我提供了一些SQL语句.我想执行do语句,怎么做?所有这些都在SQL Sever Management Studio中执行.

查询:

SELECT 'UPDATE Rolecopy SET PartofFT = ''' + R2.PlayedbyOT + ''', OriginalOT = ''' + R.PlayedbyOT + ''' WHERE RoleNo = ' + CAST(R.RoleNo AS VARCHAR) + CHAR(13)
FROM Role R INNER JOIN Role R2
ON R.PartofFT = R2.PartofFT AND R.RoleNo <> R2.RoleNo
WHERE EXISTS (
    SELECT PG.RoleNo
    FROM V_PurposeGrouping PG
    WHERE R.PartofFT = PG.PartofFT
    AND R.RoleNo <> PG.RoleNo
)
Run Code Online (Sandbox Code Playgroud)

结果:

UPDATE Rolecopy SET PartofFT = 'Student', OriginalOT = 'Teacher' WHERE RoleNo = 5.00
UPDATE …
Run Code Online (Sandbox Code Playgroud)

sql-server executequery

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

MYSQL错误:com.mysql.jdbc.NotUpdatable

我收到了这个错误

javax.servlet.ServletException:com.mysql.jdbc.NotUpdatable:结果集不可更新.

我知道这个错误是关于主键但是对于我的所有表我最初插入一个主键.所以对于这个表我也有一个主键.我发布了我的部分代码.

Statement st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery("Select * from test3 order by rand() limit 5");
List arrlist = new ArrayList();
while(rs.next()){
   String xa =rs.getString("display");
   if(xa.equals("1")){
      arrlist.add(rs.getString("question_text"));
   }
   rs.updateString("display", "0");
   rs.updateRow();
Run Code Online (Sandbox Code Playgroud)

请告诉我这段代码是否出错.请帮忙.这是我的数据库

+----------------+---------------+------+-----+---------+----------------+
| Field          | Type          | Null | Key | Default | Extra          |
+----------------+---------------+------+-----+---------+----------------+
| id             | int(11)       | NO   | PRI | NULL    | auto_increment |
| index_question | varchar(45)   | YES  |     | NULL    |                |
| question_no    | varchar(10)   | YES  |     | NULL    | …
Run Code Online (Sandbox Code Playgroud)

mysql primary-key executequery

7
推荐指数
1
解决办法
655
查看次数

每次EXECUTE IMMEDIATE后都需要COMMIT吗?

我在一个oracle过程中有多个EXECUTE IMMEDIATE命令.

EXECUTE IMMEDIATE 'DELETE  FROM tbl1'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl1...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl3'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl3 ...'; 
COMMIT;
EXECUTE IMMEDIATE 'DELETE  FROM tbl4'; 
EXECUTE IMMEDIATE 'INSERT INTO tbl4 ...';
COMMIT; 
Run Code Online (Sandbox Code Playgroud)

我是否需要所有这些COMMIT,或者只是在程序结束时?

oracle stored-procedures executequery oracle11g sp-executesql

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

sql查询使用PreparedStatement执行

我在servlet中有以下代码 -

            String loginID = request.getParameter("loginId").toString();
            String loginPassword = request.getParameter("loginPassword").toString();
            String strSQLcount = "SELECT COUNT(*) as 'Number Of Match' "
                + "FROM persons " + "WHERE (password =? AND  id =?);";
            PreparedStatement prepareSQL = connection
                    .prepareStatement(strSQLcount);
            prepareSQL.setString(1, loginPassword);
            prepareSQL.setString(2, loginID);
            ResultSet numOfMatchResult = prepareSQL.executeQuery();
            // now we know number of matchs ...
            int numOfMatch = numOfMatchResult.getInt(1);
Run Code Online (Sandbox Code Playgroud)

在运行并到达该行时,int numOfMatch = numOfMatchResult.getInt(1);它会抛出异常 - java.sql.SQLException.我检查了一下,看到它是因为executeQuery() 没有人找到它.它虽然我在persons表中创建,使用MySQL创建了2个字段 - id (text)值为"300"且password (text)值为"500".当然还有我的时候检查loginIDloginPassword用相同的2个值.我检查了关于与DB的连接的所有其他事情,它没关系..所以我认为问题出在SQL语法中 …

java sql servlets prepared-statement executequery

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

LINQ-to-SQL:ExecuteQuery(Type,String)填充一个字段,但不填充另一个字段

我编写了一个应用程序,我用它作为代理来查询数据库中的数据并自动将其加载到我的分布式Web缓存中.

我这样做是通过在配置中指定sql查询和类型.实际执行查询的代码如下所示:

List<Object> result = null;
try { result = dc.ExecuteQuery(elementType, entry.Command).OfType<Object>().ToList(); }
catch (Exception ex) { HandleException(ex, WebCacheAgentLogEvent.DatabaseExecutionError); continue; }
Run Code Online (Sandbox Code Playgroud)

elementType是从配置(使用Type.GetType())中指定的类型创建的System.Type ,并且entry.Command是SQL查询.

我遇到问题的特定实体类型如下所示:

public class FooCount
{
    [Column(Name = "foo_id")]
    public Int32 FooId { get; set; }

    [Column(Name = "count")]
    public Int32 Count { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

SQL查询如下所示:

select foo_id as foo_id, sum(count) as [count]
from foo_aggregates
group by foo_id
order by foo_id
Run Code Online (Sandbox Code Playgroud)

出于某种原因,在执行查询时,"Count"属性最终会填充,但不会填充"FooId"属性.我自己尝试运行查询,并返回正确的列名,列名与我在映射属性中指定的名称相匹配.救命!

.net c# datacontext executequery linq-to-sql

5
推荐指数
1
解决办法
8928
查看次数

是否可以使用Linq中的ExecuteQuery返回多个结果集到Sql?

我知道您可以从存储过程和设计器生成的方法返回多个结果.

但是,我正在尝试使用ExecuteQuery做同样的事情,但它似乎不可能.有没有人试过或知道这是否可行?

基本上我正在尝试运行ad-hoc存储过程.ad-hoc是指在设计时不可用的存储过程.

.net sql-server stored-procedures executequery linq-to-sql

5
推荐指数
1
解决办法
1374
查看次数

为什么Linq需要一个"只读"对象属性的setter?

我正在使用Linq DataContext.ExecuteQuery("some sql statement")来填充对象列表

var incomes = db.ExecuteQuery<IncomeAggregate>(sqlIncomeStatement(TimeUnit));
Run Code Online (Sandbox Code Playgroud)

IncomeAggregate是我用来保存此查询记录结果的对象.

YQM是该对象的一个​​属性:

public int Year { get; set; }
public int Quarter { get; set; }
public int Month { get; set; }

public string YQM 
{ 
    get { return string.Format("Y{0}-Q{1}-M{2}", Year, Quarter, Month); } 
}
... more properties
Run Code Online (Sandbox Code Playgroud)

一切都编译好,但当它执行Linq我得到以下错误:

无法为成员'YQM'分配值.它没有定义一个setter.

但显然,我不想"设定"它.Y,Q和M由查询提供给数据库.查询不提供YQM.我是否需要以某种方式更改对象的定义?(我刚开始使用Linq而且我还在加快速度,所以它可能非常简单)

linq setter readonly executequery

5
推荐指数
1
解决办法
1963
查看次数

如何从 LINQ-TO-SQL 中的 ExecuteQuery() 映射额外的字段但保留 LINQ 实体

假设我有一个 Position 表和一个相关的 Team 表,我需要从 ExecuteQuery() 调用中获取 Position 实体的列表,以及相关表中的 Team 名称。如:

var list = dc.ExecuteQuery<T>("SELECT Position.*, Team.Name  AS TeamName " +
"FROM Position LEFT JOIN Team ON Position.TeamID=Team.TeamID");
Run Code Online (Sandbox Code Playgroud)

(我需要使用 ExecuteQuery(),因为实际查询非常复杂。)

是的,我可以使用 Position 类中的所有字段和 teamname 字段创建一个新的平面类,但我需要结果集是实际的 LINQ 实体,而不仅仅是 POCO,因为我将遍历这些记录并更新一些字段.

第一个想法,创建一个包含位置和新字段的新类

public class PositionExtended
{
   public Position position {get; set;}
   public string teamname {get; set;}
}

ExecuteQuery<PositionExtended>("SELECT Position.*, Team.Name  AS TeamName " +
"FROM Position LEFT JOIN Team ON Position.TeamID=Team.TeamID");
Run Code Online (Sandbox Code Playgroud)

这正确映射了团队名称,但不是位置对象。


第二个想法,继承自 Position 类:

public class PositionExtended : …
Run Code Online (Sandbox Code Playgroud)

c# executequery linq-to-sql

5
推荐指数
1
解决办法
2733
查看次数

SSIS执行SQL查询任务找不到存储过程

我正在开发一个现有的 SSIS 包来向其中添加自定义日志记录。我正在尝试测试它,但我有一个未创建的执行 SQL 任务,但出现以下错误。

执行查询

“ap_pfl_DropProfileTables”

失败并出现以下错误:

“找不到存储过程'ap_pfl_DropProfileTables'。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。

我不知道为什么会收到此错误,因为:

  1. 我没有创建它或更改它,并且该包在生产中运行时没有错误。
  2. 存储过程只是截断两个表。它没有结果集或参数。
  3. 连接工作正常,因为此存储过程与运行数据流任务的另一个线程同时运行,该任务成功运行并使用此包中仅有的两个连接。
  4. 我已经对数据库进行了两次和三次检查,以确保存储过程存在并且拼写正确。我什至检查了存储过程中字母的大小写。

有想法该怎么解决这个吗?

ssis stored-procedures task executequery

5
推荐指数
1
解决办法
9099
查看次数

使用 SQLAlchemy 执行查询时避免参数绑定

我正在使用 SQLALchemy 在 Teradata 上执行查询。我执行的查询之一是用于替换存储过程的 DDL 语句:

REPLACE PROCEDURE DEV_MIGRATION_TOOL.UNIT_TEST_NEW_STORED_PROCEDURE()
UNIT_TEST_NEW_STORED_PROCEDURE:
BEGIN
    DECLARE V_VAR VARCHAR(50);
    SELECT 'Hello World!'
    INTO :V_VAR;
END;
Run Code Online (Sandbox Code Playgroud)

此 SQL 语句被分配给一个变量query,并由 SQLALchemy 使用会话执行方法执行:

def execute_sql_statement(self, query):
    """Generic method to execute a SQL statement on target environment."""
    self.target_environment.db_session.execute(query)
    self.target_environment.db_session.commit()
Run Code Online (Sandbox Code Playgroud)

:V_VAR遇到的问题是 SQLAlchemy 假设变量是一个应该随字典一起提供的参数。请参阅此处的文档:http : //docs.sqlalchemy.org/en/latest/orm/session_api.html#sqlalchemy.orm.session.Session.execute

result = session.execute("SELECT * FROM user WHERE id=:param", {"param":5})
Run Code Online (Sandbox Code Playgroud)

在当前配置中,它会触发错误消息:

2018-04-18 19:09:27,874 - migration_script - INFO - 在 UAT 环境中执行对象 DDL 语句。2018-04-18 19:09:27,875 - migration_script - ERROR - (sqlalchemy.exc.InvalidRequestError) …

python binding sqlalchemy teradata executequery

5
推荐指数
1
解决办法
3038
查看次数