小编TT.*_*TT.的帖子

如何在动态SQL查询中设置表名?

我想在动态SQL查询中设置表名.我成功尝试参数如下:

/* Using sp_executesql */
/* Build and Execute a Transact-SQL String with a single parameter 
value Using sp_executesql Command */

/* Variable Declaration */
DECLARE @EmpID AS SMALLINT
DECLARE @SQLQuery AS NVARCHAR(500)
DECLARE @ParameterDefinition AS NVARCHAR(100)
/* set the parameter value */
SET @EmpID = 1001
/* Build Transact-SQL String by including the parameter */
SET @SQLQuery = 'SELECT * FROM tblEmployees WHERE EmployeeID = @EmpID' 
/* Specify Parameter Format */
SET @ParameterDefinition =  '@EmpID SMALLINT'
/* Execute Transact-SQL …
Run Code Online (Sandbox Code Playgroud)

sql sql-server parameters sql-server-2008 dynamicquery

21
推荐指数
3
解决办法
9万
查看次数

INSERT失败,因为以下SET选项具有不正确的设置:'QUOTED_IDENTIFIER'

我们有时在执行存储过程时收到以下消息,之后没有任何更改删除并重新执行存储过程它工作正常.

DBCORE INSERT失败,因为以下SET选项具有不正确的设置:'QUOTED_IDENTIFIER'.验证SET选项是否正确,以便与计算列和/或筛选索引和/或查询通知和/或XML数据类型方法和/或空间索引操作的索引视图和/或索引一起使用.

请帮助我们理解这一点.

sql-server

19
推荐指数
4
解决办法
3万
查看次数

链接服务器上的标识插入失败

我想使用存储过程将我的测试数据库中的表复制到具有相同ID /身份的链接服务器但我无法使其工作..我已设置IDENTITY_INSERTON但它仍然抱怨ID列.

这是我的程序:

CREATE PROCEDURE [dbo].[TEST2PROD_CopyUIDataSServer]
AS Begin
declare @sql nvarchar(max)
-- First truncate target table
set @sql = 'EXEC [LINKEDSERVER].tempdb.sys.sp_sqlexec' + char(39)+ 'TRUNCATE Table [ProductManager].dbo.[UIData]' + char(39)+  ';'
---- SET IDENTITY_INSERT ON
set @sql = @sql + 'EXEC [LINKEDSERVER].tempdb.sys.sp_sqlexec' + char(39)+ 'SET IDENTITY_INSERT [ProductManager].[dbo].[UIData] ON' + char(39)+  ';'
---- INSERT UIDATA records from DB1 into linked server DB2
set @sql = @sql + 'WITH TestData as (SELECT * from ProductManager.dbo.UIData UID)' + NCHAR(13)+  'INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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

FOR XML PATH(''):转义"特殊"字符

此代码基本上将基于一个字符串中的位置的字符转换为另一个字符串中相同位置的字符,并且它针对表中的所有行运行.

当我运行它(简化版)时:

DECLARE @R           char(40)
DECLARE @U           char(40)
SET @R=' abcdefghijklmnopqrstuvwxyz!@#$%^&*()_+'+char(181)
SET @U=REVERSE(@R)

DECLARE @TestTable TABLE (RowID int identity(1,1) primary key, Unreadable  varchar(500))
INSERT INTO @TestTable VALUES ('+µt$zw!*µsu+yt!+s$xy')
INSERT INTO @TestTable VALUES ('%*!!xµpxu!(')
INSERT INTO @TestTable VALUES ('pxpµnxrµu+yµs%$t')


    ;WITH CodeValues AS
    (
    SELECT
        Number,SUBSTRING(@R,Number,1) AS R,ASCII(SUBSTRING(@U,Number,1)) AS UA
        FROM Numbers
        WHERE Number<=LEN(@R)
    )
    SELECT
        t.RowID
            ,(SELECT
                  ''+c.R
                  FROM Numbers               n
                      INNER JOIN CodeValues  c ON ASCII(SUBSTRING(t.Unreadable,n.Number,1))=c.UA
                  WHERE n.Number<=LEN(t.Unreadable) 
                  FOR XML PATH('') 
             ) AS readable
        FROM @TestTable t
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

RowID       readable …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2005 for-xml-path

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

在SQL Server中,确定给定字符串是否为有效XML的最佳方法是什么?

第三方组件正在填充nvarchar表中具有某些值的列.大多数情况下,它是一个人类可读的字符串,但偶尔它是XML(如果在第三方comp中有一些内部异常).

作为一个临时解决方案(直到他们修复它并始终使用字符串),我想解析XML数据并提取实际消息.

环境: SQL Server 2005; 字符串总是小于1K; 这张表中可能有几千行.


我遇到了几个解决方案,但我不确定它们是否足够好:

  1. 调用sp_xml_preparedocument存储过程并将其包装在TRY/CATCH块周围.检查返回值/句柄.
  2. 编写托管代码(在C#中),再次异常处理并查看它是否是有效字符串.

这些方法似乎都没有效率.我正在寻找类似于ISNUMERIC():ISXML()函数的东西.还有其他更好的检查字符串的方法吗?

xml t-sql sql-server-2005

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

如何在另一个远程桌面内的远程桌面中切换全屏模式?

在我的vps中,我运行远程桌面并连接到另一个vps.
现在新的遥控器有整个屏幕,我无法控制主vps!
我该如何切换这种全屏模式?

提前致谢

remote-desktop fullscreen windows-server-2008-r2

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

如何修复Eclipse可执行启动程序无法找到其Windows 7的伴随共享库?

启动Eclipse时,我收到以下错误:

eclipse可执行文件启动程序无法找到其随播共享库.

以前Eclipse jre6在我的电脑上安装时工作正常.安装后jre7 update 25,我无法再启动Eclipse.

我的Eclipse ini-file包含以下行:

-startup
plugins\org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?任何帮助都会很棒.

java eclipse

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

Paypal Sandbox API:javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

PayPal MassPay API在沙盒模式下使用时遇到异常.

相同的代码早先工作,现在它给了我一个SSLHandshakeException.我认为这是因为PayPal最新的SSL认证更新.有人可以帮我解决这个问题吗?

以下是我的异常日志:

http-bio-9090-exec-1, READ: TLSv1 Alert, length = 2
http-bio-9090-exec-1, RECV TLSv1 ALERT:  fatal, handshake_failure
http-bio-9090-exec-1, called closeSocket()
http-bio-9090-exec-1, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
com.paypal.core.rest.PayPalRESTException: Received fatal alert: handshake_failure
    at com.paypal.core.rest.PayPalResource.execute(PayPalResource.java:374)
    at com.paypal.core.rest.PayPalResource.configureAndExecute(PayPalResource.java:225)
    at com.paypal.sdk.openidconnect.Tokeninfo.createFromAuthorizationCode(Tokeninfo.java:245)
    at com.oldwallet.controllers.CouponPaymentController.redeemed(CouponPaymentController.java:321)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
    at …
Run Code Online (Sandbox Code Playgroud)

java paypal ssl-certificate paypal-sandbox masspay

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

使用where子句进行SQL查询的Sqoop导入

select * from reason

我收到了错误:

查询[select*from reason where where 20]必须在WHERE子句中包含'$ CONDITIONS'.

我知道在查询Sqoop时必须有一个where子句.

所以,对于像这样的查询

select * from reason WHERE $CONDITIONS

我将其修改为:

where

如果查询有select * from reason条款怎么办?

sqoop

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

如何懒惰地评估嵌套的 flatMap

我试图从两个潜在的无限流中召唤一个笛卡尔积,然后我通过limit().

到目前为止,这(大约)是我的策略:

@Test
void flatMapIsLazy() {
        Stream.of("a", "b", "c")
            .flatMap(s -> Stream.of("x", "y")
                .flatMap(sd -> IntStream.rangeClosed(0, Integer.MAX_VALUE)
                    .mapToObj(sd::repeat)))
            .map(s -> s + "u")
            .limit(20)
            .forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)

这不起作用。

显然,我的第二个流在第一次在管道上使用时就被当场进行了最终评估。它不会产生我可以按照自己的节奏使用的惰性流。

我认为.forEach这段代码中的原因ReferencePipeline#flatMap是:

@Override
public void accept(P_OUT u) {
    try (Stream<? extends R> result = mapper.apply(u)) {
        if (result != null) {
            if (!cancellationRequestedCalled) {
               result.sequential().forEach(downstream);
            }
            else {
                var s = result.sequential().spliterator();
                do { } while (!downstream.cancellationRequested() && s.tryAdvance(downstream));
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码返回 20 …

java cartesian-product lazy-evaluation java-stream

14
推荐指数
1
解决办法
312
查看次数