String variable assignment doesn't work in grads - grads

Trying to assign string variable like,
mon = "jan"
but it returns Syntax error : Invalid Operand
I'm on window opengrads.
ga-> mon = "jan"
Syntax Error: Invalid Operand
'jan' not a variable or function name
Error ocurred at column 1
DEFINE error: Invalid expression.

Related

No function matches the given name and argument types. You might need to add explicit type casts psql loop

I keep getting the error and I cant seem to solve it
ERROR: function partialdistanceh(integer, integer) does not exist
LINE 1: partialDistanceH(rHops.PlanetOrigin, rHops.PlanetDestination...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
QUERY: partialDistanceH(rHops.PlanetOrigin, rHops.PlanetDestination)
CONTEXT: PL/pgSQL function inline_code_block line 33 at EXECUTE
Code
FOR rHops IN SELECT PlanetOrigin, PlanetDestination FROM Hops
LOOP
PREPARE partialDistanceB (INT, INT) AS
SELECT AvgDistance FROM Distance
WHERE PlanetOrigin = $1
AND PlanetDestination = $2;
EXECUTE partialDistanceB(rHops.PlanetOrigin, rHops.PlanetDestination);
hopDistance = partialDistance;
routeDistance = routeDistance + hopDistance;
END LOOP;

Error: [SQL0802] Data conversion or data mapping error, DB2, count query

Does anyone know whay the following SQL code would be generating an 802 error? Could it be because the results of the count query are zero in some cases?
CEILING(CAST(round((1 / CAST(
(
SELECT COUNT(evecas)
FROM evetrn e2
WHERE e2.evesrv IN ('T005',
'T205')
AND e2.evecnf = 'K'
AND e2.evegrp = e.evegrp
AND e.evestf = e2.evestf
AND e2.evetim = e.evetim
AND lwsys.isodates(e2.evefyr, e2.evefmm, e2.evefdd)
= lwsys.isodates(e.evefyr, e.evefmm, e.evefdd)
AND evecas !=0
AND evetyp = 'S') AS float)
),4) AS float)
*1000) /1000
The full error being generated in Squirrel:
Error: [SQL0802] Data conversion or data mapping error.
SQLState: 22012
ErrorCode: -802
And this warning:
ErrorCode: 420Warning: [SQL0420] Character in CAST argument not
valid. SQLState: 01565 ErrorCode: 420

Replace function not supporting for bigger text and text has single quote

this is the statement execute from SNowflake SP.
var sql_Statement = "select regexp_replace ('" + mainSIDColsSrc + "'', 'source_doc:','') " ;
form the query like this :
select regexp_replace ('(trim(NVL(SOURCE_DOC:claimNumber::string,'~')) ||'^'|| trim(NVL(SOURCE_DOC:notificationType::string,'~')) ||'^'|| trim(NVL(SOURCE_DOC:estimateId::string,'~')) ||'^'|| trim(NVL(SOURCE_DOC:assignmentId::string,'~')))'', 'source_doc:','')
if run the above query :
SQL compilation error: syntax error line 1 at position 82 unexpected '~'. syntax error line 1 at position 153 unexpected '~'. syntax error line 1 at position 305 unexpected ':'. parse error line 1 at position 311 near ''.

SQL SYNTAX - data type error. How to cast?

I have the following code:
CASE WHEN {internalid} = {test} THEN 1 ELSE 0 END;
But when I run it, i received the following error:
Your formula has an error in it. It could resolve to the wrong datatype, use an unknown function, or have a syntax error. Please go back, correct the formula, and re-submit.
Is there a way I can cast it so it will have same data type no matter what?
Thanks
use the cast function
-- CAST ( { expression | NULL } AS data_type [(length)] )
CASE
WHEN CAST ({internalid} as VARCHAR(20)) = CAST({test}as VARCHAR(20))
THEN 1
ELSE 0
END;

An expression of non-boolean type specified in a context where a condition is expected, near 'THEN'

Can anyone explain to me this behaviour in SQL Server.
I've got an UPDATE statement as part of a stored proc, and it get a 'An expression of non-boolean type specified in a context where a condition is expected, near 'THEN' error in some cases as per below. First the statement.
UPDATE MyDB.dbo.OrganisationUnits
SET OrganisationUnit = Inserted.OrganisationUnit,
ParentOrganisationUnit =
(CASE WHEN ((SELECT Count(1)
FROM [172.24.112.10].Consurgo.dbo.OrganisationUnits CO1
WHERE CO1.OrganisationUnit = Inserted.ParentOrganisationUnit) = 1)
THEN Inserted.ParentOrganisationUnit
ELSE CO.ParentOrganisationUnit
END),
OrganisationLevel = Inserted.OrganisationLevel
FROM Inserted, Deleted, MyDB.dbo.OrganisationUnits CO
WHERE CO.OrganisationUnit = Deleted.OrganisationUnit
The error comes in in the CASE statement at the ' = 1' part.
As the statement is now, it works. If I change the =1 part to > 0 then it fails with error message above.
With <> 0 it also fails. But with <> 1 it works.
It also works with =2 and <>2.