这似乎相对简单,但显然不是.
我需要通过select into语法创建一个基于现有表的临时表:
SELECT * INTO #TEMPTABLE FROM EXISTING_TABLE
Run Code Online (Sandbox Code Playgroud)
问题是,通过参数接受现有的表名...
我可以通过以下方式获取表的数据:
execute ('SELECT * FROM ' + @tableName)
Run Code Online (Sandbox Code Playgroud)
但是如何将这两者结合起来以便我可以将执行结果直接放入临时表中.
将要用于的每个表的列都不相同,因此在获取数据之前构建临时表是不切实际的.
除了使用全局临时表之外,我对任何建议持开放态度.
更新:
这是完全荒谬的,但我对全球临时表的保留意见是,这是一个多用户平台,如果桌子会长时间停留,就会出现问题......
Sooo ..只是为了通过这个部分,我已经开始使用execute生成一个全局临时表.
execute('select * into ##globalDynamicFormTable from ' + @tsFormTable)
Run Code Online (Sandbox Code Playgroud)
然后我使用全局临时表来加载本地临时表:
select * into #tempTable from ##globalDynamicFormTable
Run Code Online (Sandbox Code Playgroud)
然后我删除全局表.
drop table ##globalDynamicFormTable
Run Code Online (Sandbox Code Playgroud)
这很脏,我不喜欢它,但暂时,直到我得到一个更好的解决方案,它必须工作.
到底:
我想没有办法解决它.
最好的答案似乎是;
在execute命令中创建一个视图,并使用它来加载存储过程中的本地临时表.
在execute命令中创建一个全局临时表,并使用它来加载本地临时表.
有了这个说我可能只是坚持使用全局临时表,因为在我的组织中审计创建和删除视图,我相信如果它一直开始发生,他们会质疑.
谢谢!
我正在使用一些类似于的Json:
{
"Apps" : [
{
"Name" : "app1",
"id" : "1",
"groups" : [
{ "id" : "1", "name" : "test group 1", "desc" : "this is a test group" },
{ "id" : "2", "name" : "test group 2", "desc" : "this is another test group" }
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果我在jquery中解析它以返回一个对象,我正在遍历应用程序,如下所示:
$.each(myJsonObject.Apps, function() { ... };
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到它的长度this.groups ?
我试过了
我找不到任何关于具有良好信息的多层json对象的文档.
任何链接或示例或建议将不胜感激.
enter code here我正在构建一组函数,它们根据参数和内部选择返回一个json字符串.
我遇到的问题是因为我在pl/sql中循环游标,构建json的结构,它在最后一个节点的末尾添加了一个额外的逗号.
它正确解析,但由于额外的逗号,json的html eval失败了.是否可以删除pl/sql中的特定字符(比如字符串中的最后一个逗号).我查看了REPLACE,但是我找不到使用REPLACE和特定字符实例的文档.
循环看起来像:
FOR appGroup IN appGroups
LOOP
tsResults := tsResults || ' "Group" : { ';
tsResults := tsResults || ' "Id" : "' || appGroup.group_id || '", ';
tsResults := tsResults || '"Name" : "' || appGroupd.display_name || '" ';
tsResults := tsResults || ' }, ';
END LOOP;
Run Code Online (Sandbox Code Playgroud)
这是最后一行的最后一个逗号给了我悲伤.
有没有办法杀死最后一个没有抓取它之前的所有字符串字符,以及它之后的所有字符并将它们组合在一起?
关于如何解决这个问题的任何建议都将非常感激.
更新
使用Cybernate的答案我能够进行一些更改以使其工作......最初是在END LOOP之后立即进行的; 我有额外的代码添加更多的结果字符串:
tsResults := tsResults || '}] }';
Run Code Online (Sandbox Code Playgroud)
哪个正确终止了我正在处理的组数组...
我在该行之前放置了以下代码:
tiLastComma := INSTR(tsResults, ',', -1);
tsResults := SUBSTR(tsResults, 1, …Run Code Online (Sandbox Code Playgroud) 我有一个简单的对象,允许您分配三个属性(x,y,z)(让我们称这个对象为"点",因为它就是这样).然后我有一个第二个对象,其中一个方法接受第一个对象的两个实例,并返回三维空间中两个"点"之间的距离.我还需要一个接受两个"点"和一个double的方法,表示行进的距离(从使用的第一个"点"参数)返回带有x,y,z坐标的"点"对象.
除了计算所提供的两个点之间的原始线上的点坐标,即距离第一个点一定距离之外,我对所有事情都很满意.
"点"对象:
public class POR
{
private double PORX;
private double PORY;
private double PORZ;
public double X
{
get { return PORX; }
set { PORX = value; }
}
public double Y
{
get { return PORY; }
set { PORY = value; }
}
public double Z
{
get { return PORZ; }
set { PORZ = value; }
}
public POR(double X, double Y, double Z)
{
PORX = X;
PORY = Y;
PORZ = …Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的代码块.
Sub Run(Name)
on error resume next
Set objShell = CreateObject("WScript.Shell")
if Err.Number = 429 then
alert("Invalid Security Level.")
exit sub
end if
objShell.Run Name
if Err.Number <> 0 then
Alert("Please verify your Operating System Choice")
end if
Set objShell = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
我正在使用网站上的链接,允许用户通过以下方式对硬盘进行碎片整理:
<a href="#" onclick="Run('c:\\windows\\system32\\dfrgui.exe')">Defrag Windows Vista</a><br>
<a href="#" onclick="Run('c:\\windows\\system32\\dfrg.msc')">Defrag Windows Server 2003 SE or Windows XP</a>
Run Code Online (Sandbox Code Playgroud)
你可能猜到..使用:
Set objShell = CreateObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)
导致一些问题,并且抛出了无法创建对象的错误.我可以进入IE安全性并更改安全设置,
"初始化并编写未标记为脚本安全的ActiveX控件脚本"
"提示",当我点击"是"时,它实际上会提示我并运行.
我现在的问题是;
因为这不是来自asp服务器的单独代码块(htm页面没有代码隐藏).我是否真的需要花费20美元来签名,我将如何在htm页面的vbscript上首先做到这一点?
此外,将在DOES中实施的站点具有SSL证书.是否有可能以某种形式或形式整合到现有的证书中?
我想做的就是拥有像...一样的链接
"如果你想整理你的计算机,请点击这里"
"如果你想运行磁盘扫描,请点击这里"
并且告诉所有客户进入并更改其安全设置不是一种选择.
我需要在特定的表中找到一个insert语句.不幸的是,应用程序不是我的开始,数据库中有超过100个存储过程,我已经逐步完成代码写下每个存储过程名称从开始到结束此过程,我仍然无法找到它.我知道这个过程必须在某个地方发生,因为依赖它的另一个进程可以正常工作.我找不到它.
是否有某种TSQL允许我在多个存储过程中搜索特定的文本行...更具体地说,"INSERT INTO [tablename]"
UPDATE
我尝试过使用:
SELECT routine_name, routine_type
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%INSERT INTO [tablename]%'
Run Code Online (Sandbox Code Playgroud)
直接将[tablename]替换为我的表名.这将返回0行.
我确实有一个具有该行的精确行的过程,我会假设它将在上面的查询中返回,但它根本没有带回任何东西.
更新#2
在使用redgate sql搜索工具(使用INSERT INTO [tablename])后,它返回1 sp,但我仍然否认这是正确的,因为某些tsql(在sp的末尾它的丢弃表仍然是在数据库中......)(这是我在sql中体验的经验)
我仍然无法找到这个被调用的地方......
更新#3
我刚刚搜索了'INSERT INTO [tablename]'的整个解决方案,看看他们是否可能不会使用存储过程进行此调用,而且没有...在任何地方找不到它.
我有一个相对复杂的Access 2007用VBA编写的应用程序(4个枚举,7个模块,38个类模块,86个表单,以及一大堆表和查询).我发现使用对象工厂设计是有益的,但到目前为止,我无法找到一种干净的方法来实现这种类型的功能,而无需在VB或C#中轻松实现的标准抽象/继承.
有没有人有过在VBA中实施工厂设计的经验,甚至可能吗?......还是有一个巧妙的"技巧"可以帮助我获得相同的总体目标?
我在工厂设计方面的经验仅限于C#,我从来没有在VB中完成它,所以也许VBA中有一些我不知道的VB常见的东西.
例
我将收到具体日期.根据该日期,我需要计算2到5个其他日期之间的任何地方.计算这些日期的规则根据输入日期的"类型"而变化.
因此,如果我的日期为07/15/2009,这是一个类型1日期,它将返回
07/15/2010日期1,07/15/2011日期2,07/15/2012日期3,06/10/2012,日期4和07/10/2012,日期5
如果我把相同的日期,但把它作为日期类型2我将得到null为日期1,null为日期2,null为日期3,06/10/2011为日期4和07/10/2011为日期5
因此,对于每组规则,最少有3个可能的最大值为6(现在这可以随时扩展)我将基本上输入一个开始日期...规则...并返回一个对象包含所有日期属性.
我希望这有点帮助.
这是一个我以前没遇到过的新问题.
我有一个表,一次包含超过10万条记录,它是开发环境的事件日志.
加载表需要10秒钟(只需单击它即可查看表中的数据).
我删除了除30行以外的所有内容,但仍然需要7秒才能加载.
我正在使用Toad,它给了我一个对话框,上面写着"Statement Processing ..."
有任何想法吗?
以下是一些选择语句以及它们花了多长时间
select * from log; 21 rows in 10 secs
select * from log where id = 120000; 1 row in 1 msec
select * from log where user = 35000; 9 rows in 7 sec
Run Code Online (Sandbox Code Playgroud)
id是pk,用户字段上没有索引.
我有一个表视图,其中包含位于此表顶部的所有字段,并且运行速度一样慢.