Syntax error at end of input sqlstate 42601

PostgreSQL error 42601 mainly occurs due to the syntax errors in the code. Proper syntax check and code correction will fix it up.

Syntax errors are quite common while coding.

But, things go for a toss when it results in website errors.

PostgreSQL error 42601 also occurs due to syntax errors in the database queries.

At Bobcares, we often get requests from PostgreSQL users to fix errors as part of our Server Management Services.

Today, let’s check PostgreSQL error in detail and see how our Support Engineers fix it for the customers.

What causes error 42601 in PostgreSQL?

PostgreSQL is an advanced database engine. It is popular for its extensive features and ability to handle complex database situations.

Applications like Instagram, Facebook, Apple, etc rely on the PostgreSQL database.

But what causes error 42601?

PostgreSQL error codes consist of five characters. The first two characters denote the class of errors. And the remaining three characters indicate a specific condition within that class.

Here, 42 in 42601 represent the class “Syntax Error or Access Rule Violation“.

In short, this error mainly occurs due to the syntax errors in the queries executed. A typical error shows up as:

Here, the syntax error has occurred in position 119 near the value “parents” in the query.

How we fix the error?

Now let’s see how our PostgreSQL engineers resolve this error efficiently.

Recently, one of our customers contacted us with this error. He tried to execute the following code,

CREATE OR REPLACE FUNCTION prc_tst_bulk(sql text)
RETURNS TABLE (name text, rowcount integer) AS
$$
BEGIN
WITH m_ty_person AS (return query execute sql)
select name, count(*) from m_ty_person where name like '%a%' group by name
union
select name, count(*) from m_ty_person where gender = 1 group by name;
END
$$ LANGUAGE plpgsql;

But, this ended up in PostgreSQL error 42601. And he got the following error message,

ERROR: syntax error at or near "return"
LINE 5: WITH m_ty_person AS (return query execute sql)

Our PostgreSQL Engineers checked the issue and found out the syntax error. The statement in Line 5 was a mix of plain and dynamic SQL. In general, the PostgreSQL query should be either fully dynamic or plain. Therefore, we changed the code as,

RETURN QUERY EXECUTE '
WITH m_ty_person AS (' || sql || $x$)
SELECT name, count(*)::int FROM m_ty_person WHERE name LIKE '%a%' GROUP BY name
UNION
SELECT name, count(*)::int FROM m_ty_person WHERE gender = 1 GROUP BY name$x$;

This resolved the error 42601, and the code worked fine.

[Need more assistance to solve PostgreSQL error 42601?- We’ll help you.]

Conclusion

In short, PostgreSQL error 42601 occurs due to the syntax errors in the code. Today, in this write-up, we have discussed how our Support Engineers fixed this error for our customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

@Omicr12

class Addnewuserclass
    {
        private string id;
        private string name;
        private string email;
        private string phone;
        private string username;
        private string password;


        public Addnewuserclass(string user_id, string full_name, string em_ail, string phone_number, string user_name,string pass_word)
        {
            id = user_id;
            name = full_name;
            email = em_ail;
            phone = phone_number;
            username = user_name;
            password= pass_word;
            
        }
        public void AddUserr()
        {

         NpgsqlConnection connection = new NpgsqlConnection("User Id=postgres;Password=1212;Host=localhost;Database=Backup;");
            string sql = string.Format("insert into userr (id,name,email,phone,username,password) values "(@id,@name,@email,@phone,@username,@password");
            NpgsqlCommand cmd = new NpgsqlCommand(sql);
            cmd.Connection = connection;
            cmd.Connection.Open();
            cmd.Parameters.AddWithValue("@id", id);
            cmd.Parameters.AddWithValue("@name", name);
            cmd.Parameters.AddWithValue("@email", email);
            cmd.Parameters.AddWithValue("@phone", phone);
            cmd.Parameters.AddWithValue("@username", username);
            cmd.Parameters.AddWithValue("@password", password);
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
        }
    }
}
//This is my table query
CREATE TABLE userr
(
  id integer NOT NULL,
  name text NOT NULL,
  email text NOT NULL,
  phone character varying(100)[] NOT NULL,
  username text NOT NULL,
  password text NOT NULL
)

@YohDeadfall

In such cases please check validity of your queries first.

The problem as the exception says in the SQL:

string sql = string.Format("insert into userr (id,name,email,phone,username,password) values" + "(@id,@name,@email,@phone,@username,@password",connection);

Note: What are you trying to format and concatenate here? None of these operations will affect result, but make execution slower.

The extracted and formatted SQL looks like:

insert into userr (id,name,email,phone,username,password)
values(@id,@name,@email,@phone,@username,@password

And as you can see, there is no closing parenthesis.

Содержание

  1. PostgreSQL — состояние SQL: 42601 синтаксическая ошибка
  2. PostgreSQL error: PDOException: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near «SEPARATOR» #193
  3. Comments

PostgreSQL — состояние SQL: 42601 синтаксическая ошибка

Я хотел бы знать, как использовать динамический запрос внутри функции. Тем не менее, я пробовал много способов, когда пытаюсь скомпилировать мою функцию, появляется сообщение SQL 42601.

Код, который я использую:

Сообщение об ошибке, которое я получаю:

Я пробовал использовать:

Что не так? Как я могу решить эту проблему?

Ваша функция будет работать следующим образом:

Вы не можете смешивать простой и динамический SQL так, как вы пытались это сделать. Весь оператор является либо динамическим, либо простым SQL. Поэтому я создаю одно динамическое выражение, чтобы сделать эту работу. Вы можете быть заинтересованы в главе о выполнении динамических команд в руководстве.

Совокупная функция count() возвращает bigint , но у вас была определенная rowcount как integer , поэтому для выполнения этой работы вам нужен явный cast ::int

Я использую котировку доллара, чтобы избежать цитирования ада.

Однако, предполагается ли это, что это honeypot для инъекций SQL-инъекций или вы серьезно собираетесь его использовать? Для вашего очень частного и безопасного использования это может быть нормально, хотя я бы даже не доверял себе такой функцией. Если есть доступ к ненадежным пользователям, такая функция является загруженным лапкой. Это невозможно сделать безопасным.

Крейг (заклятый враг инъекции SQL!) Может получить легкий ход, когда он увидит, что вы подделали из своего фрагмента кода в ответ на ваш предыдущий вопрос. 🙂

Сам запрос кажется довольно странным, кстати. Но это не имеет значения.

Источник

PostgreSQL error: PDOException: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near «SEPARATOR» #193

I’m using the farmos.app web-app, I’ve tried this process on both my handset (Samsung S7) and on my PC and have had the same result.
These are my areas — so there are areas on the map, just to confirm:

But when I try and add areas to the log, I get a «No areas found» error:

I have synced (through the sync now button, and synced new TODO logs through the little cloud) but I still have this error. I suspected it was because I was quite far from the field, but I’ve added some test fields that were much closer, and I still get the same error. Any ideas?
Everything else appears to be working — I can push logs from the phone/PC to the site, and I can pull logs from the site>PC/Phone, equipment/assets are all there, just location/areas

The text was updated successfully, but these errors were encountered:

Oh this might be related to a bug I only recently found and, I believe, fixed. It’s possible the update hasn’t reached your device yet. Can you tell me, is there a version number in the drawer menu, like below?

If you’re on version 0.4.4, then you should have that update. If not, there won’t be any version number visible (this is a feature I just added for this kind of diagnostic purpose). You’ll need to refresh and/or close and reopen the app for the update to install.

If you have received the v0.4.4 update and the problem is persisting, then I guess I’ll have to dig a little deeper.

I’m on 0.4.4 I’m afraid.

I’ve done a fresh install of FarmOS, and still have the same problem. Very odd.

How fast is your network connection? One possibility is its timing out, although that seems unlikely.

I’m testing it now and getting a similar bug with assets. In my case it looks like my token has gone stale and I need to login again (getting a 403 error), which is also preventing general syncing. But you’ve said you’re able to sync from the My Logs menu, correct?

Perhaps you could open the developer console (press ctrl+shift+i) from your PC, then try the «Sync Now» button and see what network errors occur in the console? (We definitely need better error handling so these messages show up in the UI in the first place.)

In my case it looks like my token has gone stale and I need to login again (getting a 403 error)

Related to farmOS/field-kit#219? (I still have to test and respond to your comment over there @jgaehring . )

So, the console message is:
GET https://. example.com/farmOS/taxonomy_term.json?vocabulary=3&&page=0 500 (Service unavailable (with message))
And on the FarmOS side of things:
PDOException: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near «SEPARATOR» LINE 3: . id ORDER BY ss_log.timestamp DESC, ss_log.id DESC SEPARATOR . ^: SELECT ss_asset_current_log.field_farm_asset_target_id AS asset_id FROM (SELECT ss_fdffa.field_farm_asset_target_id AS field_farm_asset_target_id, SUBSTRING_INDEX(GROUP_CONCAT(ss_log.id ORDER BY ss_log.timestamp DESC, ss_log.id DESC SEPARATOR ‘,’), ‘,’, 1) AS ss_current_log_id FROM ss_log INNER JOIN ss_fdffa ON ss_fdffa.entity_type = ‘log’ AND ss_fdffa.entity_id = ss_log.id AND ss_fdffa.deleted = 0 INNER JOIN ss_fdffm ON ss_fdffm.entity_type = ‘log’ AND ss_fdffm.entity_id = ss_log.id AND ss_fdffm.deleted = 0 WHERE (ss_log.timestamp

I’m hosting FarmOS on Postgresql, could it be a PostGresql error?
I tried the GET url in Postman, and came up with the same error.

That is definitely a PostgreSQL error.

Let’s isolate this from Field Kit and fix that first. Do you get the same issue if you go to https://. example.com/farmOS/taxonomy_term.json?vocabulary=3 directly in your browser?

Yea, and if I run
/farmOS/taxonomy_term.json?bundle=farm_areas I also get the same error

Alright — so let’s move this to farmOS/farmOS and debug that first.

If I add return array(); to the top of the function farm_movement_area_assets_property_get() , which simply disables that function, then it fixes the issue.

The purpose of that function is to add an array of assets to the area JSON, so you can easily see what assets are in an area in the area JSON.

That function calls farm_movement_area_assets() , which in turn calls farm_movement_area_assets_query() , which is where the offending query is built.

Will continue to dig.

Here is the specific line of code in farm_movement_area_assets_query() causing the issue:

Notably, a similar line exists in farm_group_members_query() :

And notably, we have an @todo comment in both functions for merging/abstracting them, because they are so similar. So I might look into that while fixing this.

I actually knew about the issue back when we added the group asset code. See this issue on drupal.org: https://www.drupal.org/project/farm/issues/2935784

This code is a bit complex. It uses two MySQL functions that are not available in PostgreSQL: SUBSTRING_INDEX() and GROUP_CONCAT() .

But maybe we can find alternatives.

. or maybe we can find a better way of doing it so that those functions aren’t necessary.

Was talking about this query with @amorsent and he threw together a reworked query that does the same thing without those functions. Posting this here for future reference. still need to convert it back to PHP using Drupal’s DB API.

Man, I am glad you’re looking at this. I wouldn’t even know where to begin with that query. What even are half the columns?!

The query @mstenta listed above would have been just the subquery part.

Note also — the subquery ends up needing to work out the current location of every asset.

I think it can be done without the subquery, in a more efficient way that does not need to work out the location of every asset.

This version works more or less like this:
Give me all the logs (before a given time) moving any asset into the specified location.
Now exclude ALL future movements of the asset (up to the given time)

Example below is untested.
I have no means to test it as I’m not setup with a dev environment. I have just performed logical operations to the query. I’ve mostly maintained the existing table aliases. However some of them make less sense in this structure and should probably be updated for clarity.

A potential snag is that movements can reference multiple assets and multiple areas. I believe the original query handles this (we need tests!) but the new queries might not? Need to think it through a bit more and run some tests.

Testing this and it seems to be working well.

Here is the (slightly modified) query I’m testing with:

One last comment before turning in for the night, credit to @amorsent:

btw .. you probably could restructure this query to start with the farm_asset table and join in the log table . might arguably make more sense that way
«Assets for which the last move was into the specified location» instead of «logs that were the last log to move an asset into a location»

FYI @Skipper-is (and anyone else trying to use Field Kit with a self-hosted farmOS using PostgreSQL): I won’t have time to pick this up again for a bit — so if you want to make the small edit I mentioned above as a temporary workaround, that will allow you to use the app.

If I add return array(); to the top of the function farm_movement_area_assets_property_get() , which simply disables that function, then it fixes the issue.

So the error I reported here is actually the same error/SQL code as this [42601]. So this is the error message from that:
PDOException: SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near «SEPARATOR» LINE 3: . id ORDER BY ss_log.timestamp DESC, ss_log.id DESC SEPARATOR . ^: SELECT ss_asset_current_log.field_farm_asset_target_id AS asset_id FROM (SELECT ss_fdffa.field_farm_asset_target_id AS field_farm_asset_target_id, SUBSTRING_INDEX(GROUP_CONCAT(ss_log.id ORDER BY ss_log.timestamp DESC, ss_log.id DESC SEPARATOR ‘,’), ‘,’, 1) AS ss_current_log_id FROM ss_log INNER JOIN ss_fdffa ON ss_fdffa.entity_type = ‘log’ AND ss_fdffa.entity_id = ss_log.id AND ss_fdffa.deleted = 0 INNER JOIN ss_fdffm ON ss_fdffm.entity_type = ‘log’ AND ss_fdffm.entity_id = ss_log.id AND ss_fdffm.deleted = 0 WHERE (ss_log.timestamp
This came up when I clicked a specific field on the main dashboard map, other fields worked, but one or 2 produced this error.

Further reference to this issue: Error appears on fields that have had a group moved to it (eg, my goat group, made up of my individual goats). If the group has moved off, there is no error

Источник

Hello,

I am trying to build a query using StringBuilder based off a variable
size ArrayList of inputs. When testing a simplest use case of one input
ID, I get an syntax error at end of input. However, if I copy the
generated SQL and run it in pgAdmin3, it is able to execute successfully.
Below is the error with loglevel2 enabled. Any advice would be much
appreciated.

SELECT seq_chromats.species_code_4, seq_chromats.fasta_header_line,
seq_chromats.fasta_sequence, seq_chromats.flag_two_reads_exist,
seq_amplicons.amplicon_name, seq_primers.primer_name FROM seq_amplicons
INNER JOIN seq_primers ON seq_primers.amplicon_name =
seq_amplicons.amplicon_name INNER JOIN seq_chromats ON
seq_chromats.primer_id = seq_primers.primer_id WHERE
seq_amplicons.amplicon_name IN ((‘0_8156_01’))
14:40:53.272 (1) PostgreSQL 9.1 JDBC4 (build 901)
14:40:53.277 (1) Trying to establish a protocol version 3 connection to
localhost:5432
14:40:53.282 (1) FE=> StartupPacket(user=sswap_agent,
database=treegenes_development, client_encoding=UTF8, DateStyle=ISO,
extra_float_digits=2)
14:40:53.286 (1) <=BE AuthenticationReqMD5(salt=3ce4592b)
14:40:53.287 (1) FE=>
Password(md5digest=md5b4b2bdfb96e02dea70d85a4890a23c4e)
14:40:53.290 (1) <=BE AuthenticationOk
14:40:53.303 (1) <=BE ParameterStatus(application_name = )
14:40:53.303 (1) <=BE ParameterStatus(client_encoding = UTF8)
14:40:53.303 (1) <=BE ParameterStatus(DateStyle = ISO, MDY)
14:40:53.303 (1) <=BE ParameterStatus(integer_datetimes = on)
14:40:53.303 (1) <=BE ParameterStatus(IntervalStyle = postgres)
14:40:53.303 (1) <=BE ParameterStatus(is_superuser = off)
14:40:53.303 (1) <=BE ParameterStatus(server_encoding = SQL_ASCII)
14:40:53.303 (1) <=BE ParameterStatus(server_version = 9.0.7)
14:40:53.303 (1) <=BE ParameterStatus(session_authorization = sswap_agent)
14:40:53.303 (1) <=BE ParameterStatus(standard_conforming_strings = off)
14:40:53.303 (1) <=BE ParameterStatus(TimeZone = US/Pacific)
14:40:53.303 (1) <=BE BackendKeyData(pid=30534,ckey=1141196332)
14:40:53.303 (1) <=BE ReadyForQuery(I)
14:40:53.305 (1) simple execute,
handler=org(dot)postgresql(dot)core(dot)SetupQueryRunner$SimpleResultHandler(at)4b0d78ec,
maxRows=0, fetchSize=0, flags=23
14:40:53.305 (1) FE=> Parse(stmt=null,query=»SET extra_float_digits =
3″,oids={})
14:40:53.307 (1) FE=> Bind(stmt=null,portal=null)
14:40:53.307 (1) FE=> Execute(portal=null,limit=1)
14:40:53.307 (1) FE=> Sync
14:40:53.309 (1) <=BE ParseComplete [null]
14:40:53.309 (1) <=BE BindComplete [null]
14:40:53.309 (1) <=BE CommandStatus(SET)
14:40:53.309 (1) <=BE ReadyForQuery(I)
14:40:53.310 (1) compatible = 9.1
14:40:53.310 (1) loglevel = 2
14:40:53.310 (1) prepare threshold = 5
getConnection returning
driver[className=org.postgresql.Driver,org(dot)postgresql(dot)Driver(at)4669b7fe]
14:40:53.338 (1) simple execute,
handler=org(dot)postgresql(dot)jdbc2(dot)AbstractJdbc2Statement$StatementResultHandler(at)31b27882,
maxRows=0, fetchSize=0, flags=17
14:40:53.338 (1) FE=> Parse(stmt=null,query=»SELECT
seq_chromats.species_code_4, seq_chromats.fasta_header_line,
seq_chromats.fasta_sequence, seq_chromats.flag_two_reads_exist,
seq_amplicons.amplicon_name, seq_primers.primer_name FROM seq_amplicons
INNER JOIN seq_primers ON seq_primers.amplicon_name =
seq_amplicons.amplicon_name INNER JOIN seq_chromats ON
seq_chromats.primer_id = seq_primers.primer_id WHERE
seq_amplicons.amplicon_name IN («,oids={})
14:40:53.339 (1) FE=> Bind(stmt=null,portal=null)
14:40:53.339 (1) FE=> Describe(portal=null)
14:40:53.339 (1) FE=> Execute(portal=null,limit=0)
14:40:53.339 (1) FE=> Sync
14:40:53.346 (1) <=BE ErrorMessage(ERROR: syntax error at end of input
Position: 400)
org.postgresql.util.PSQLException: ERROR: syntax error at end of input
Position: 400
at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
at
edu.dendrome.sswap.QueryWithConfig.queryChromatSeqsByAmplicon(QueryWithConfig.java:380)
at
edu.dendrome.sswap.AmpliconMultiFastaService.initializeRequest(AmpliconMultiFastaService.java:88)
at
info.sswap.api.servlet.SimpleSSWAPServlet.handleRequest(SimpleSSWAPServlet.java:125)
at
info.sswap.api.servlet.AbstractSSWAPServlet.doPost(AbstractSSWAPServlet.java:658)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:680)
SQLException: SQLState(42601)
14:40:53.350 (1) <=BE ReadyForQuery(I)
ERROR: syntax error at end of input
Position: 400

Best,
-Hans

yfimc

Newbie
Newbie
Posts: 4
Joined: Wed Mar 14, 2012 6:21 pm

syntax error when creating function

I’m trying to create a simple function but I always get the error: [CREATE — 0 row(s), 0.000 secs] [Error Code: 0, SQL State: 42601] ERROR: syntax error at end of input

I tried boiling it down to the simplest function I could think of but I still get the same error:

Code: Select all

create function fun1(x int) return int 
as
begin 
        return 1; 
end;

Any idea why this is happening?


User avatar

JimKnicely

Site Admin
Site Admin
Posts: 1825
Joined: Sat Jan 21, 2012 4:58 am
Contact:

Re: syntax error when creating function

Post

by JimKnicely » Wed Mar 14, 2012 10:08 pm

Hi,

Hmm. Your code looks okay. What version of Vertica are you using? Are you running the create statement in vsql or some other tool? If it’s not in vsql , maybe the tool you are using is interpreting the first semi-colon as the end of your statement. There maybe some sort of delimiter you need to put around the entire statement. We have that issue with MySql scripts where we need to use the DELIMITER command to change the delimiter temporarily at the beginning and and then back to the default at the end of the entire SQL code that contains more semi-colons than just the ending one (after the END statement).

If I run your create statement in vsql in 5.0.11 it works:

Code: Select all

dbadmin=> create function fun1(x int) return int
dbadmin-> as
dbadmin-> begin
dbadmin->         return 1;
dbadmin-> end;
CREATE FUNCTION
dbadmin=> select fun1(1);
 fun1
------
    1
(1 row)

I’ll try running it in TOAD, SQuirrel and DbVisualizer tomorrow and let you know what I find. I know the delimiters in DbVisualizer are —/ and /. So in DbVisualizer you could try this:

Code: Select all

--/
create function fun1(x int) return int
as
begin
  return 1;
end;
/

Jim Knicely

Image

Note: I work for Vertica. My views, opinions, and thoughts expressed here do not represent those of my employer.


User avatar

JimKnicely

Site Admin
Site Admin
Posts: 1825
Joined: Sat Jan 21, 2012 4:58 am
Contact:

Re: syntax error when creating function

Post

by JimKnicely » Thu Mar 15, 2012 12:48 pm

Hi,

I confirmed that DbVisualizer thinks there are multiple SQL statements in the code and I get the same error you are receiving.

Try running the create statement with the delimiters:

Code: Select all

--/
create function fun1(x int) return int
as
begin
  return 1;
end;
/

This runs okay for me in DbVisualizer.

Or, you should be able to execute the entire buffer using the SQL->Execute Buffer menu selection. According the the documentation for DbVisualizer:

  • Execute Buffer sends the complete editor buffer for execution as one statement. No comments are removed and no parsing of individual statements based on any delimiters is made. This operation is useful when executing SQL blocks or SQLs used to create procedures, functions, etc.

Hopefully this helps you out!

Jim Knicely

Image

Note: I work for Vertica. My views, opinions, and thoughts expressed here do not represent those of my employer.


yfimc

Newbie
Newbie
Posts: 4
Joined: Wed Mar 14, 2012 6:21 pm

Re: syntax error when creating function

Post

by yfimc » Mon Mar 19, 2012 6:44 pm

THANK YOU knicely! You fixed the issue — yes I am using DBVis and the delimiters resolve the problem.
Cheers.


Понравилась статья? Поделить с друзьями:
  • Svchost exe системная ошибка как исправить
  • Syntax error at end of input position
  • Syntax error async with outside async function
  • Svchost exe диск отсутствует как исправить windows 7
  • Svchost exe выдает ошибку