# Equivalent to INSTR(\<string\>, \<string\>) function for virtual graph mapping

**URL:** <https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511>\
**Category:** Support\
**Created:** [August 1, 2023, 1:42pm UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511 "2023-08-01T13:42:15Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Oliver\_Rudolph](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/oliver_rudolph/32/1633_2.png) [@Oliver\_Rudolph](https://community.stardog.com/u/Oliver_Rudolph)\
**Post date:** [August 1, 2023, 1:42pm UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511/1 "2023-08-01T13:42:15Z")

</div>

Hi!  
Trying to map a data source column via Impala within a virtual graph, I fail to see how I can replace this perfectly working query part into Stardog SMS2:

SUBSTR(location\_id, INSTR(location\_id, line\_number)+4, 4) AS station\_number

SUBSTR -\> SUBSTRING (that one I figured)  
INSTR -\> ?

---

<div class="post-metadata">

**Author:** ![Boris\_Pelakh](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/boris_pelakh/32/1890_2.png) [@Boris\_Pelakh](https://community.stardog.com/u/Boris_Pelakh)\
**Post date:** [August 1, 2023, 2:55pm UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511/2 "2023-08-01T14:55:39Z")

</div>

STRLEN(STRBEFORE(location\_id, line\_number))+1 is equivalent to INSTR

---

<div class="post-metadata">

**Author:** ![PaulJackson](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/pauljackson/32/243_2.png) [@PaulJackson](https://community.stardog.com/u/PaulJackson)\
**Post date:** [August 1, 2023, 4:08pm UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511/3 "2023-08-01T16:08:09Z")

</div>

If the error you're getting looks something like:

```plaintext
No match found for function signature instr(<CHARACTER>, <CHARACTER>)

```

... then the error is happening because Stardog's SQL parser doesn't know about the `INSTR` function. You can work around this by adding the following to your [virtual graph options](https://docs.stardog.com/virtual-graphs/virtual-graph-configuration#sqlfunctions):

```auto
sql.functions=instr:varchar

```

-Paul

---

<div class="post-metadata">

**Author:** ![PaulJackson](https://yyz2.discourse-cdn.com/flex030/user_avatar/community.stardog.com/pauljackson/32/243_2.png) [@PaulJackson](https://community.stardog.com/u/PaulJackson)\
**Post date:** [August 1, 2023, 6:06pm UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511/4 "2023-08-01T18:06:00Z")

</div>

My apologies. I just noticed I made an error. The element after the colon is the return type, so the option should be:

```auto
sql.functions=instr:integer

```

Having the wrong return type can appear to work for simple queries, which is why my test passed.

-Paul

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex030/uploads/stardog/original/2X/e/ed66b48a616f505106a4acde3c9cee7e6da9bc67.svg) [@system](https://community.stardog.com/u/system)\
**Post date:** [September 8, 2023, 8:10am UTC](https://community.stardog.com/t/equivalent-to-instr-string-string-function-for-virtual-graph-mapping/4511/5 "2023-09-08T08:10:13Z")

</div>


