如何执行我的选择查询的结果.下面的查询为我提供了一些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) 我收到了这个错误
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) 我在一个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
我在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".当然还有我的时候检查loginID并loginPassword用相同的2个值.我检查了关于与DB的连接的所有其他事情,它没关系..所以我认为问题出在SQL语法中 …
我编写了一个应用程序,我用它作为代理来查询数据库中的数据并自动将其加载到我的分布式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"属性.我自己尝试运行查询,并返回正确的列名,列名与我在映射属性中指定的名称相匹配.救命!
我知道您可以从存储过程和设计器生成的方法返回多个结果.
但是,我正在尝试使用ExecuteQuery做同样的事情,但它似乎不可能.有没有人试过或知道这是否可行?
基本上我正在尝试运行ad-hoc存储过程.ad-hoc是指在设计时不可用的存储过程.
我正在使用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而且我还在加快速度,所以它可能非常简单)
假设我有一个 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) 我正在开发一个现有的 SSIS 包来向其中添加自定义日志记录。我正在尝试测试它,但我有一个未创建的执行 SQL 任务,但出现以下错误。
执行查询
“ap_pfl_DropProfileTables”
失败并出现以下错误:
“找不到存储过程'ap_pfl_DropProfileTables'。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接未正确建立。
我不知道为什么会收到此错误,因为:
有想法该怎么解决这个吗?
我正在使用 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) …
executequery ×10
linq-to-sql ×3
.net ×2
c# ×2
sql-server ×2
binding ×1
datacontext ×1
java ×1
linq ×1
mysql ×1
oracle ×1
oracle11g ×1
primary-key ×1
python ×1
readonly ×1
servlets ×1
setter ×1
sql ×1
sqlalchemy ×1
ssis ×1
task ×1
teradata ×1