var step0=`select INGESTION_SUCCESSFUL,ingestion_uuid from FILE_INGESTION_HISTORY where ingestion_uuid=(
select ingestion_uuid from registration where registry_subject_uuid=:1
qualify row_number() over( order by dnb_latest_received_dt desc)=1)`;
var statement0=snowflake.createStatement
我试图在PreparedStatement上执行雪花批量更新,但没有成功。我能够执行每个单独的查询(preparedStatement.executeQuery()),这样查询就可以工作了。但是一旦我切换到batchUpdate(),我就会得到一个异常,它似乎没有设置我的变量(在insertEventStatement.executeBatch()抛出)。
net.snowflake.client.jdbc.SnowflakeSQLException: SQL compilation error: error line 1 at position 134
Bind variable ? not
我对雪花在以日期为参数的存储过程中工作相当陌生,在SELECT语句中将使用相同的参数作为结果集中的附加列。以下是代码:
CREATE OR REPLACE PROCEDURE test1 (TEST_DATE VARCHAR)
RETURNS VARCHAR NOT NULL
LANGUAGE javascript
EXECUTE AS CALLER
AS
$$
var prod = TEST_DATE;
var sql_stmt = `select
ID
,Value
,getvariable('PROD') as TestDate
, to_varchar(CURREN
我正在使用一个Snowflake存储过程,它将采用从一个数据库到另一个数据库的视图。我在努力 var sqlCommand = `
SELECT a.OBJECT_NAME, a.OBJECT_SCHEMA, a.OBJECT_TYPE, d.VIEW_DEFINITION
FROM VIEW_OBJECT_LIST a
INNER JOIN DB_DEV.INFORMATION_SCHEMA.VIEWS d ON a.OBJECT_NAME = d.TABLE_NAME AND a.OBJECT_SCHEMA = d.TABLE_SCHEMA
I
我有一段简单的sql代码要在我的存储过程中执行
我正在尝试绑定模式的名称,但我正在努力使其正常工作
下面是我的代码
CREATE OR REPLACE PROCEDURE DATABASE.SCHEMA."CREATE_SCHEMA"("SCHNAME" VARCHAR(16777216))
RETURNS VARCHAR(16777216)
LANGUAGE JAVASCRIPT
COMMENT='Creates roles for new schemas'
EXECUTE AS CALLER
AS
$$
var sqlCode =
你好,雪花英雄,你知道任何可行的解决办法,目前在雪花JS存储过程的限制是,一个人不能使用绑定变量在创建视图内的存储过程?下面是不起作用的代码。
CREATE OR REPLACE PROCEDURE MAKE_VIEW(V2 FLOAT)
RETURNS FLOAT
LANGUAGE JAVASCRIPT AS $$
snowflake.createStatement({sqlText: "\
create or replace view TEST_VIEW as \
(with cte as (select COLUMN1 FROM VALUES (1),(2),(3) ) \
s
下面是我的存储过程,我不知道为什么它总是抛出错误。我得到的错误是
SQL编译错误:位于XX位置的语法错误行XX意外“?”。
我已经跟踪了文档,但它似乎对我不起作用。
这就是我所拥有的:
CREATE OR REPLACE PROCEDURE spExample(INPUT_TABLE VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS
$$
result = "";
try {
var sql_cmd = "SELECT * FROM ?;";
我是加载数据到雪花使用外部阶段。此操作在存储过程中执行,并从雪花任务中调用该过程。过程使用“复制到查询”将数据加载到表中,然后检查验证错误。为了获得验证错误,我使用_last作为job_id。
用于将数据复制/加载到雪花表中的查询
COPY INTO conference_created_tmp FROM @conference_created_src/year=2021/month=04/day=15/hour=01/ ON_ERROR = 'SKIP_FILE'
用于获取验证错误的查询:
SELECT FILE as fileName, ERROR as error
FRO
我正在与nodejs合作开发snowflake。我已经使用了snowflake-sdk。 我的原始查询是select * from xyz where x in ('1','2','3')。为此,在node.js中,我以connection.execute({ sqlText: select * from xyz where x in (:1), binds: [] })的形式编写了查询,我应该在绑定中传递什么,以及以哪种格式,我对此一无所知?
我已经创建了一个存储过程,其行为是执行作为所有者(我需要所有者的权限)。
我希望得到用户的原始角色,调用它,有任何方法来做吗?不幸的是,正如预期的那样,select current_role()语句返回所有者的角色..。
如果有解决办法,如果你能向我描述一下,我将不胜感激。
按照Mike的建议:在这里,我为测试哈什的解决方案所做的代码:
再次失败^^这是我的代码。也许你会看到我的错误。
create or replace procedure do_noting_proc()
returns string
language javascript
execute as OWNER
AS
$$
v
通常,我会用一个带有相关子查询的SELECT语句来创建这个表,但在Snowflake中不能吗?无论如何,我希望更新表中的所有行,并为不匹配的行指定一个特殊值(9999)。在T-SQL中,我会这样做
update x
set x.value = coalesce(n.value2, 9999)
from x
left join n
on x.id = n.id
我怎样才能在Snowflake中做同样的事情?
我是第一次接触星火和Python,我有一个存储在python变量中的sql,我们使用的是SnowFlake数据库。如何通过雪花连接的SQL创建spark数据?
import sf_connectivity (we have a code for establishing connection with Snowflake database)
emp = 'Select * From Employee'
snowflake_connection = sf_connectivity.collector() (It is a method to establi
我在用雪花
CREATE OR REPLACE PROCEDURE test1(TBLNM varchar)
RETURNS VARCHAR(16777216) not null
LANGUAGE JAVASCRIPT
$$
var sql_cmd = "SELECT col1 FROM TBLNM ;
var ins = `insert into tabl2 (column1) SELECT :1
FROM table1 `
;
var stmt = snowflake.createStatement(
{
sqlText: sq
我正试着把我的事实表和我的昏暗的桌子连接起来。在我的事实表上创建了一个物化视图,以帮助在获得总计时的性能。然而,我发现我的MV没有在示例1中使用。
下面的例子使用了雪花样本数据中的数据。
我是否总是必须像示例2那样编写我的查询才能使用它?
--creating the MV
create or replace materialized view my_db.public.inventory_mv as
(select inv_item_sk,sum(INV_QUANTITY_ON_HAND) as INV_QUANTITY_ON_HAND from "SNOWFLAKE_SAMPLE
create or replace procedure test_table_proc(ingestion varchar)
returns varchar
language javascript
as
$$
var step2="create or replace temporary table FN_IGSN_ROLE_PLAYER_NAME_OUTPUT_TEMP"
step2+=ingestion
step2+=" as select * from bv_principal limit 10";
var statement2=snowflake.
当我试图将雪花中的数据加载到一个数据数据中时,我会得到这个错误:
py4j.protocol.Py4JJavaError: An error occurred while calling o45.load.
: java.lang.NoClassDefFoundError: net/snowflake/client/jdbc/internal/org/bouncycastle/jce/provider/BouncyCastleProvider
下面是一些再现错误的代码:
from pyspark.sql import SparkSession
from pyspark import Spark
我正在努力保护一个针对SQL注入的现有应用程序。由于使用了著名的“复制/粘贴”模式开发模式,它非常古老,而且几乎不可能重构。所有select查询参数(来自用户输入)都没有被过滤。但是,有一个正在使用的自定义查询函数。它接受MySQL查询作为参数,并在数据库中执行它。看起来是这样的:
public function query($sql) {
$this->m_query_id = @mysql_query($sql, $this->m_link_id);
...
}
我的问题是,会否作出这样的修改:
public function q
我正在使用Binds将数据库和模式名作为参数传递到雪花存储过程中,不确定我看到的语法错误是什么。请求你的帮助。
代码:
CREATE OR REPLACE PROCEDURE repo(DB_SCHEMA VARCHAR)
RETURNS string
LANGUAGE JAVASCRIPT
AS
$$
var sql_command = ` CREATE TABLE :1.TEST_KK AS SELECT * FROM :1.DIM_ACTIVITY_HIER`;
snowflake.execute({sqlT
由于两个原因,我正在做一个循环处理特定字段名的过程:
我想使用md5 (我们正在使用数据库)对字段名本身进行散列;,我想将每个字段名值作为一行添加到表中。
我有以下程序,运作得很好:
CREATE PROCEDURE ADD_OBSERVATION_VALUES()
RETURNS string
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS
$$
arr = [];
var row_num = 1;
// Set the indicators
COLUMN_FIELD_NAMES = ["care_beneficiar
我一直试图在雪花中设置任务的返回值。
我有一个简单的任务看起来是这样..。
create or replace procedure insertNum()
returns boolean
language javascript
execute as caller
as
$$
var countResult = snowflake.createStatement({sqlText: "select count(*) from numbers;"}).execute();
countResult.next();
var count = count
我已经创建了一个存储存储过程参数的数组。如何循环数组,并将值作为参数输入到存储过程中?
以下是我到目前为止所拥有的:
CREATE OR REPLACE PROCEDURE SP_TL_START()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
//Array created to house parameters.
var report_users = [];
// create for the following users
var rs = snowflake.execute( { sqlText:
`
SELECT
DISTINCT US
在查询SNOWFLAKE_SAMPLE_DATA数据库中的一个表时,我得到了一个UTF-8解码错误,这是雪花在注册试用帐户时提供的。
import snowflake.connector
c = snowflake.connector.connect(..., database='SNOWFLAKE_SAMPLE_DATA')
r = c.cursor().execute("""
SELECT tpcds_sf100tcl.customer.c_birth_country
FROM tpcds_sf100tcl.customer WHE
我使用snowflake作为ssrs报告的数据源。我试图通过将我的查询添加为expr来传递参数。
这是我到目前为止尝试过的:
="select * from "Snowflake"."Past"."Customer"
where cast("startdate" as date) = '" Parameters!mydate.Value"';"
当我尝试Refresh Fields时,没有填充任何内容,实际上我得到的是错误Customers data has no fields
另
我正在使用文档并尝试运行一个简单的脚本,该脚本位于以下位置:
Py4JJavaError: An error occurred while calling o37.load.
: java.lang.ClassNotFoundException: Failed to find data source: net.snowflake.spark.snowflake.
下面是我的代码。我还尝试使用jdbc的路径和位于/Users/Hana/spark-sf/目录中的spark-snowflake jars来设置配置选项,但没有成功。
from pyspark import SparkConf, Sp
我有一个字符串可以保存任何类型的sql语句(选择、更新、删除、插入)
我想大写该语句中的列名和表名。
假设我们有:
select id from person where name="Dave"
我想要
select ID from PERSON where NAME="Dave"
到目前为止,我已经在Java中找到了一些Sql解析器,但我想知道是否还有更快、更简单的方法来解析和重建sql。
编辑
为了进一步澄清这个问题,数据库整理是土耳其语,而我试图解决的问题是“土耳其I问题”。DB中的列/表的名称都是大写的,但是Java应用程序生成带有小写列和表的sql语
在雪花存储过程中,我正在执行动态SQL。我希望使用绑定变量将表名传递到查询中。因为它们是变量,所以我需要用标识符() ()包装它们。
然而,这似乎在某些情况下起作用,而在其他情况下则行不通。
这是可行的(使用Javascript字符串内插将目标表放入查询,但使用TMP表的绑定变量):
var deleteResults = snowflake.execute({sqlText:`
DELETE FROM ${threePartTargetTable} TARGET
USING IDENTIFIER(?) TMP
WHERE TARGET.DOCUMENT_DES
我正在将MySQL数据库迁移到Neo4j数据库,但无法正确地重写该查询。
MySQL查询:
SELECT ID, Nome, Fotografia
FROM Participante AS pa
INNER JOIN Filme_temAtor_Participante AS fa ON fa.Participante_ID = pa.ID
WHERE fa.Filme_ID = 1
UNION
SELECT ID, Nome, Fotografia
FROM Participante AS pr
INNER JOIN Filme_temRealizad