我正在尝试编写INSERT INTO来执行一些DISTINCT/GROUP BY工作.该查询作为select语句运行完全正常,但如果将其包装到INSERT INTO中则无效.
INSERT INTO MasterRecords
(BatchRecordRecordID, SourceID, BatchID)
SELECT RecordID, SourceID, BatchID
FROM (
SELECT RecordID, BatchID, 101 AS SourceID
FROM BatchRecords
WHERE BatchID = 150
GROUP BY RecordID, BatchID
) BR
Run Code Online (Sandbox Code Playgroud)
这让我有所收获:
SQL错误:ORA-00979:不是GROUP BY表达式
但是,如果我只删除INSERT INTO代码,它运行完全正常:
SELECT RecordID, SourceID, BatchID
FROM (
SELECT RecordID, BatchID, 101 AS SourceID
FROM BatchRecords
WHERE BatchID = 150
GROUP BY RecordID, BatchID
) BR
Run Code Online (Sandbox Code Playgroud)
结果:
3 101 150
5 101 150
6 101 150
2 101 150
4 101 150
8 …Run Code Online (Sandbox Code Playgroud) 我们最近在生产部署过程中将客户端迁移到SQL Azure平台.通过所有外在的迹象,它是成功的:连接到它的网络应用程序都在工作.
但是,当我们查看Azure监视器时,我们会看到许多连接失败.我们找不到太多文档来解释什么构成失败的连接.我们的用户都没有报告问题.有谁知道这可能是怎么回事?

使用本文中的示例查询(在SQL Azure实例上查看连接问题)
SELECT
[Date From] = EL.[start_time],
[Date To] = EL.[end_time],
[Database Name] = EL.[database_name],
[Event Type] = EL.[event_type],
[Event Sub Type] = EL.[event_subtype_desc],
[Description] = EL.[description],
[Additional Data] = EL.additional_data
FROM sys.event_log EL
WHERE EL.event_type != 'connection_successful'
AND EL.event_subtype_desc != 'idle_connection_timeout'
ORDER BY [Date From] DESC
Run Code Online (Sandbox Code Playgroud)
我们看到这样的结果:
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 [DATABASE] connection_failed blocked_by_firewall Client IP address is not allowed to access the server. NULL
2013-04-19 16:40:00.0000000 2013-04-19 16:45:00.0000000 connection_failed blocked_by_firewall Client IP address …Run Code Online (Sandbox Code Playgroud) 在Azure上的SQL Server(2008 R2)中,有一个包含大量地理Points(纬度/经度)的表:
CREATE TABLE MyPoints
(
Region uniqueidentifier NOT NULL,
Number int NOT NULL,
Position geography NOT NULL,
CONSTRAINT PK_MyPoints PRIMARY KEY(Region, Number)
)
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个Polygon从这一点来确定,我的哪些商店位于由点定义的区域.
是否有一种原生的快速方法从T-SQL中的给定点构建多边形?我找到的解决方案是使用STGeomFromText/ STGeomFomWKB方法创建一个多边形,这对我来说似乎非常麻烦和缓慢.
就像是:
SET @POLY = geometry::STPolyFromPoints(SELECT Position FROM MyPoints)
Run Code Online (Sandbox Code Playgroud) 是否有一种简单的内置方式将格式为"$ 1,000.00"和"($ 1,000.00)"的NVARCHAR转换为数值1000.00和-1000.00?
我试图在SQL Server或SSIS中执行此操作.
施放到MONEY会给我错误
"Cannot convert a char value to money. The char value has incorrect syntax.".
Run Code Online (Sandbox Code Playgroud)
当试图抛出负值时,我假设由于括号.
我正在为C#中的Google地图构建一个Tile Overlay服务器,并且已经找到了一些用于从Latitude计算Y的不同代码示例.让他们一般工作后,我开始注意到某些情况下覆盖层没有正确排列.为了测试这一点,我制作了一个测试工具来比较Google Map的Mercator LatToY转换与我在网上找到的公式.如下所示,在某些情况下它们不匹配.
情况1
缩小:缩小时问题最为明显.近距离,问题几乎不可见.
案例#2
点邻近观察边界的顶部和底部:在观察边界的中间问题更严重,并且朝向边缘变得更好.此行为可以否定案例#1的行为
考试:
我创建了一个谷歌地图页面,使用谷歌地图API内置的墨卡托转换显示红线,并使用参考代码将其叠加到图像上进行墨卡托转换.这些转换表示为黑线.比较差异.
结果: 赤道http://www.kayak411.com/Mercator/MercatorComparison%20-%20Equator.png North Zoomed Out http://www.kayak411.com/Mercator/MercatorComparison%20-%20North%20Zoomed%20Out. PNG
当您放大时,问题在视觉上变得更大但在数值上更小: alt text http://www.kayak411.com/Mercator/MercatorComparison%20-%20North%20Zoomed%20Midway.png
无论屏幕方向如何,它都会以更接近的缩放级别消失. alt text http://www.kayak411.com/Mercator/MercatorComparison%20-%20North%20Zoomed%20In.png
代码:
Google地图客户端代码:
var lat = 0;
for (lat = -80; lat <= 80; lat += 5) {
map.addOverlay(new GPolyline([new GLatLng(lat, -180), new GLatLng(lat, 0)], "#FF0033", 2));
map.addOverlay(new GPolyline([new GLatLng(lat, 0), new GLatLng(lat, 180)], "#FF0033", 2));
}
Run Code Online (Sandbox Code Playgroud)
服务器端代码:
Tile Cutter:http: //mapki.com/wiki/Tile_Cutter
OpenStreetMap Wiki:http: //wiki.openstreetmap.org/wiki/Mercator
protected override void ImageOverlay_ComposeImage(ref Bitmap …Run Code Online (Sandbox Code Playgroud) 我有一张有两部分钥匙的桌子; ID列和版本号.我正在尝试选择"仅最新版本"的记录.
我正在尝试使用LINQ的表达式样式来实现GROUP BY,并拉出Version的聚合MAX值. 但是没有发生聚合.
汇总代码:
From C In Credentials
Group Join ....
Group Join ....
Group C.CredentialID, NE.ClientID, C.Version By
NE.ClientID, C.CredentialID Into CGroup = Group
From CG In CGroup
Select New With {
.ClientID = CG.ClientID,
.CredentialID = CG.CredentialID,
.MaxVersion = CGroup.Max(Function(p) p.Version)
}
Run Code Online (Sandbox Code Playgroud)
实际结果:
ClientID CredentialID MaxVersion
1196 1 3
1196 1 3
1196 1 3
1196 2 1
Run Code Online (Sandbox Code Playgroud)
期望的结果:
ClientID CredentialID MaxVersion
1196 1 3
1196 2 1
Run Code Online (Sandbox Code Playgroud)
也尝试过,结果相同:
Group C By Key = New …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Visio 2010 COM Interops以编程方式创建时间轴和标记.我的代码基于Chris Castillo的2部分博客文章(第1部分,第2部分),这是我能够找到的关于如何执行此操作的唯一半完整示例.然而他的博客(从2004年开始)似乎并不合适.里程碑并没有真正与时间轴相关联,更新日期并不能让它们移动到正确的位置.
有什么建议或修正吗?

Imports Microsoft.Office.Interop.Visio
Imports System.Diagnostics.CodeAnalysis
Imports System.Runtime.InteropServices
Run Code Online (Sandbox Code Playgroud)
...
Dim VisioApp As New Application
Dim myDoc As Document = VisioApp.Documents.Add("")
Dim myPage As Page = myDoc.Pages.Item(1)
Dim TimelineStencils As Document =
VisioApp.Documents.Add("Timeline Shapes.vss")
Dim theTimeline As Shape
Dim theMilestone As Shape
VisioApp.AlertResponse = 1
theTimeline = myPage.Drop(
TimelineStencils.Masters.ItemU("Block timeline"), 5.610236, 5.511811)
theTimeline.CellsU("User.visBeginDate").FormulaU = _
VisioApp.ConvertResult(
"1/1/2004", VisUnitCodes.visDate, VisUnitCodes.visInches)
theTimeline.CellsU("User.visEndDate").FormulaU = _
VisioApp.ConvertResult(
"12/31/2004", VisUnitCodes.visDate, VisUnitCodes.visInches)
VisioApp.Addons("ts").Run("/cmd=3")
theMilestone = myPage.Drop( _
TimelineStencils.Masters.ItemU("Line milestone"), …Run Code Online (Sandbox Code Playgroud) 我有一个程序,我需要缓存一些数据,出于性能原因,下游操作.
该TYPE定义工作
该BULK COLLECT INTO作品
这SELECT不起作用
PROCEDURE MYPROC((PARAMS))AS
TYPE REC_TYPE IS RECORD (
COLUMN_1 (TABLEA.COLUMN_A)%TYPE,
COLUMN_2 (TABLEA.COLUMN_B)%TYPE
);
TYPE TAB_TYPE IS TABLE OF REC_TYPE;
TABLE_1 TAB_TYPE;
BEGIN
SELECT COLUMN_A, COLUMN_B
BULK COLLECT INTO TABLE_1
FROM TABLE_A;
SELECT * FROM TABLE_1;
END MYPROC;
Run Code Online (Sandbox Code Playgroud)
产量:
错误(#,#):PL/SQL:ORA-00942:表或视图不存在
我也尝试将它包装在一个表函数中,就像我在其他地方使用我的单列类型一样,但这也不起作用
SELECT * FROM TABLE(TABLE_1);
Run Code Online (Sandbox Code Playgroud)
错误(#,#):PL/SQL:ORA-22905:无法访问非嵌套表项的行
我正在使用Oracle的托管ODP.NET客户端和Entity Framework.它工作正常.但是我在不同的服务器上有不同的行为.我很确定它与DLL版本有关,但到目前为止我找不到任何差异.
我有这些表:
create table parent (
parent_id number primary_key,
data varchar2(100)
);
create table child (
child_id number primary key,
parent_id number references parent(parent_id)
);
Run Code Online (Sandbox Code Playgroud)
而这些实体:
public class Parent {
Int32 Id { get; set; }
string Data { get; set; }
}
public class Child {
Int32 Id { get; set; }
Parent Parent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是代码:
Entities e = new Entities(connectionString);
Parent p = new Parent();
parent.Data = "TEST DATA!";
Child c …Run Code Online (Sandbox Code Playgroud) oracle entity-framework odp.net entity-framework-4 odp.net-managed